MYSQL 按文本排序
Posted
技术标签:
【中文标题】MYSQL 按文本排序【英文标题】:MYSQL order by text 【发布时间】: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) 完成
有没有办法做到这一点?
【问题讨论】:
欺骗Ordering by specific field value first 【参考方案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')
【讨论】:
以上是关于MYSQL 按文本排序的主要内容,如果未能解决你的问题,请参考以下文章
如何按热门字段(文本字段)对聚合进行排序?或者是不是有可能按文本字段对聚合进行排序(不使用_term)