按字符串对字符串列的查询结果进行排序。

时间:2011-10-08 20:50:42

标签: mysql

我有一个varchar列的表,完全由数字填充。当我使用ORDER BY子句执行查询时,它按字母数字排序。如果我知道它们都是数字但不能将列更改为整数类型,我该如何对数字进行排序?

insert into table1 values(field1) ('1'), ('10'), ('2);
select * from table1 order by field1;

应该返回:     1,2,10

1 个答案:

答案 0 :(得分:3)

您可以投射该字段:

insert into table1 values(field1) ('1'), ('10'), ('2');
select * from table1 order by cast(field1 as signed integer);