【问题标题】:MYSQL order by textMYSQL 按文本排序
【发布时间】:2015-12-31 15:12:02
【问题描述】:

好的,我知道如何按 id 或数字排序

$getTicket = $sql->query("SELECT * FROM `ticket` 
                          WHERE `user`='$user->name' 
                          ORDER BY `id` DESC");

我在工单表中有状态,其中我有 3 件事:

1) 已回答 2) 未回答 3) 已完成

我想这样排序:

1) 未答复
2) 已回答
3) 完成

有没有办法做到这一点?

【问题讨论】:

标签: php mysql sorting


【解决方案1】:

做简单的事-

ORDER BY FIELD(Status, 'Unanswered', 'Answered', 'Done')

【讨论】:

    【解决方案2】:

    一般可以使用case

    SELECT * FROM `ticket` 
    WHERE `user` = '$user->name' 
    ORDER BY case when Status = 'Unanswered' then 1
                  when Status = 'Answered' then 2
                  else 3
             end
    

    或 MySQL 特定的 find_in_set

    SELECT * FROM `ticket` 
    WHERE `user` = '$user->name' 
    ORDER BY find_in_set(Status, 'Unanswered,Answered,Done')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-27
      • 2016-01-08
      • 2013-06-12
      • 1970-01-01
      • 2011-04-06
      • 2023-03-24
      • 1970-01-01
      • 2020-12-13
      相关资源
      最近更新 更多