MySQL ORDER BY首先发送到最后

时间:2015-01-22 16:21:05

标签: mysql sql list sql-order-by

我设法使用this trick正确地命名我的列表,使用UNSIGNED变量,但输出有一个问题,它将唯一的条目放在数字条目之前以字母开头。 (按字符串排序)

我使用此SQL语句ORDER BY CAST(reason AS UNSIGNED), reason(其中“reason”是字符串)的当前输出是

Unknown reason
1- blablabla
2- blebleble
3- bliblibli
4- blobloblo
5- blublublu
6- blyblybly

我希望“未知原因”是唯一不以数字开头的字符串位于底部,因此将收到的第一个结果抛到列表底部。

1 个答案:

答案 0 :(得分:0)

您可以按顺序添加多个键,包括表达式:

order by (left(reason, 1) between '0' and '9') desc,
         reason

当条件以数字开头时,第一个条件的计算结果为true,这被视为1并将转到顶部。其他原因将深入到底。