【问题标题】:MySQL: make record last in alpha sortMySQL:在阿尔法排序中最后记录
【发布时间】:2017-02-24 22:54:54
【问题描述】:
我可以使选定的记录出现在排序查询的开头:
$sql = "SELECT meetID, meetingTitle
FROM meetings
ORDER BY meetingTitle = 'Other Meetings' DESC, meetingTitle DESC";
这会强制“其他会议”位于字母数组输出的顶部。我希望它在底部。然后我可以使用 array_reverse 将它放在输出数组的末尾,但我正在寻找一种直接使用 MySQL 查询的方法。这可能吗?
【问题讨论】:
标签:
mysql
sorting
array-reverse
【解决方案1】:
将ASC 更改为DESC:
$sql = "SELECT meetID, meetingTitle
FROM meetings
ORDER BY meetingTitle = 'Other Meetings' ASC, meetingTitle DESC";
meetingTitle = 'Other Meetings' 的值对于 Other Meetings 是 1,对于其他值是 0。因此,如果您首先想要其他值,您希望 0 领先于 1,这就是 ASCending 顺序。
【解决方案2】:
SELECT meetID, meetingTitle FROM meetings
ORDER BY
CASE WHEN meetingTitle = 'Other Meetings' THEN 2 ELSE 1 END, meetingTitle DESC