数值将值排序为MySQL中的字符串

时间:2011-10-17 10:56:17

标签: mysql sql

我想知道当数字是字符串时是否有办法进行数字排序。看看例子:

查询:

  

SELECT * FROM t_tables t order by id_string asc

这是DB中的列表:

13
4
6
8
10
1
3
2
5
12
7
9
11

我需要以这种方式提取它:

1
2
3
4
5
6
7
8
9
10
11
12
13

但结果我得到了这个:

1
10
11
12
13
2
3
4
5
6
7
8
9

3 个答案:

答案 0 :(得分:2)

如果您知道列中始终包含数值,则可以使用CAST()运算符。另请查看此question

SELECT * FROM t_tables t ORDER BY CAST(id_string AS UNSIGNED) ASC

答案 1 :(得分:2)

SELECT * FROM t_tables t order by cast(id_string as signed integer) asc;

答案 2 :(得分:1)

希望有所帮助:

SELECT * FROM t_tables t order by cast(id_string as unsigned)