【问题标题】: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 查询的方法。这可能吗?

【问题讨论】:

  • 见 FIELD() ...

标签: 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 Meetings1,对于其他值是 0。因此,如果您首先想要其他值,您希望 0 领先于 1,这就是 ASCending 顺序。

【讨论】:

    【解决方案2】:
        SELECT meetID, meetingTitle FROM  meetings
        ORDER BY 
        CASE WHEN meetingTitle = 'Other Meetings' THEN 2 ELSE 1 END, meetingTitle DESC
    

    【讨论】:

      猜你喜欢
      • 2021-06-28
      • 2015-08-21
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      相关资源
      最近更新 更多