首页 > 解决方案 > MySQL 按字段排序,以未列出的项目结尾

问题描述

我正在使用一个大型 MySQL 查询,我需要通过一组id

这是我的order by条款:ORDER BY FIELD(plt_id.id, '82', '81', '78', '84', '86', '87')

效果很好……但 MySQL 行以id未列出的行开头。我需要id首先列出。

有什么建议如何从id列出的那些开始,ORDER BY FIELD(plt_id.id, '82', '81', '78', '84', '86', '87')然后是所有未列出的行?

标签: mysql

解决方案


简单的方法是反转函数内列出的 id 的顺序FIELD()并降序排序:

ORDER BY FIELD(plt_id.id, '87', '86', '84', '78', '81', '82') DESC

对于列表中不存在的所有 id,FIELD()返回0以便将它们排在最后。


推荐阅读