sql中把varchar类型转换为int型然后进行排序,如果我们数据库的ID设置为varchar型的 在查询的时候order by id的话 如果我们数据库的ID设置为varchar型的 在查询的时候order by id的话我们是不希望看到如下情况的. 我们可以把varchar转换为int 然后进行排序 一. 复制代码代码如下: select * from yourtable order by cast(yourcol as int); 适用于SQLServer Oracle 二. 复制代码
--使用CAST将varchar转换成int类型排序 select distinct(zone_id) from guild_rank_info order by CAST(zone_id as SIGNED); --使用CONVERT将varchar转换成int类型排序 select distinct(zone_id) from guild_rank_info order by convert(zone_id , SIGNED); null
mysql(测试版本为5.6) 的varchar必须加范围,否则报错: mysql> CREATE TABLE test ( -> id INT, -> name VARCHAR -> ); ERROR (): You have an error mysql> CREATE TABLE test ( -> id INT, -> name VARCHAR() -> ); Query OK, rows affected (0.22 sec) varchar最大6