在 SELECT 语句中,我有一个带有 ORDER BY DESC 的 varchar 列。本栏数据示例:
1234
987
12-a
13-bh
MySQL 会返回类似下面的选择:
987
12-a
1234
13-bh
它将三个字符长的结果放在四个字符长的结果之前,依此类推。我希望它忽略长度,只对“-”字符之前的数字进行排序。有没有我可以在 IF() 中订购的东西,比如 SUBSTRING,它会删除以“-”字符开头的行中的所有数据,以便我可以将其转换为整数?
最佳答案
最简单的事情就是这样
SELECT *
FROM TBL
ORDER BY VARCHAR_COLUMN * 1;
要查看发生了什么,只需添加我用于排序的列
SELECT *, VARCHAR_COLUMN * 1
FROM TBL
ORDER BY VARCHAR_COLUMN * 1;
关于mysql - 如何订购 MySQL VARCHAR 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5055049/