MySQL ORDER BY 从前到后发送
MySQL ORDER BY Send first to last
我设法使用 this trick 正确排序了我的列表,使用 UNSIGNED 变量但输出有一个问题,它将唯一以字母开头的条目放在数字条目之前。 (按字符串排序)
我当前使用此 SQL 语句 ORDER BY CAST(reason AS UNSIGNED), reason
(其中 "reason" 是字符串)的输出是
未知原因
1- blablabla
2- blebleble
3- 比比比利
4- 斑斑斑斑
5- 布鲁布鲁布鲁
6- blyblybly
我希望 "Unknown reason" 是唯一不以数字开头的字符串位于底部,因此将收到的第一个结果扔到列表底部。
您可以将多个键添加到 order by,包括表达式:
order by (left(reason, 1) between '0' and '9') desc,
reason
当条件以数字开头时,第一个条件的计算结果为真,这被视为 1 并将移至顶部。剩下的原因就水落石出了
我设法使用 this trick 正确排序了我的列表,使用 UNSIGNED 变量但输出有一个问题,它将唯一以字母开头的条目放在数字条目之前。 (按字符串排序)
我当前使用此 SQL 语句 ORDER BY CAST(reason AS UNSIGNED), reason
(其中 "reason" 是字符串)的输出是
未知原因 1- blablabla 2- blebleble 3- 比比比利 4- 斑斑斑斑 5- 布鲁布鲁布鲁 6- blyblybly
我希望 "Unknown reason" 是唯一不以数字开头的字符串位于底部,因此将收到的第一个结果扔到列表底部。
您可以将多个键添加到 order by,包括表达式:
order by (left(reason, 1) between '0' and '9') desc,
reason
当条件以数字开头时,第一个条件的计算结果为真,这被视为 1 并将移至顶部。剩下的原因就水落石出了