使用数字和其他非字母字符对varchar列进行排序

时间:2013-09-11 10:48:25

标签: mysql sql

我有一个 mysql 表,其中包含一个存储时间序列的列,如下所示:

08:00 - 09:00
09:00 - 10:00
07:00 - 08:00
11:00 - 12:00
06:00 - 07:00
... 等等。

在进行 mysql 查询时,我希望此列对结果进行排序,顺便说一下,该列是 varchar 数据类型列。

我想要的结果是:

06:00 - 07:00
07:00 - 08:00
08:00 - 09:00
09:00 - 10:00
11:00 - 12:00

这就是我没有成功的尝试:

SELECT * FROM mytable ORDER BY CAST(mycolumn AS INT) ASC;  

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

按字符串值排序列会产生您想要的结果:

SELECT *
FROM mytable
ORDER BY mycolumn ASC;

左边的数字是零填充的,因此它们的排序方式与字符串和整数相同。