Mysql 按字符串列对查询结果进行数字排序。
我有一个带有varchar列的表,该列完全由数字填充。当我使用ORDERBY子句执行查询时,它按字母数字排序。如果我知道它们都是数字,但无法将列更改为整数类型,那么如何对它们进行数字排序Mysql 按字符串列对查询结果进行数字排序。,mysql,Mysql,我有一个带有varchar列的表,该列完全由数字填充。当我使用ORDERBY子句执行查询时,它按字母数字排序。如果我知道它们都是数字,但无法将列更改为整数类型,那么如何对它们进行数字排序 insert into table1 values(field1) ('1'), ('10'), ('2); select * from table1 order by field1; 应返回: 1、2、10您可以投射该字段: insert into table1 values(field1) ('1'),
insert into table1 values(field1) ('1'), ('10'), ('2);
select * from table1 order by field1;
应返回:
1、2、10您可以投射该字段:
insert into table1 values(field1) ('1'), ('10'), ('2');
select * from table1 order by cast(field1 as signed integer);
你可以投下这个场:
insert into table1 values(field1) ('1'), ('10'), ('2');
select * from table1 order by cast(field1 as signed integer);
我认为插入时的顺序甚至没有被用户提到OP@Cez. 你说得对。忽略了一个
代码>:o从我的帖子中删除了抱怨。语法也不正确。它应该读为“CAST(field1作为无符号整数)”或“CAST(field1作为有符号整数)”@Cez。又对了。:)我想该睡觉了。{oI我认为插入时的顺序甚至没有被OP@Cez.你说得对。忽略了一个;
:o从我的帖子中删除了抱怨。语法也不正确。它应该是“CAST(field1作为无符号整数)”或“CAST(field1作为有符号整数)”@Cez。再次对。:)我想我该睡觉了。{oNote您有语法错误:('2');
=>('2');
注意您有语法错误:('2');
=>('2');