在 MySQL 查询结果中确定特定项目的优先级
本指南演示如何从 MySQL friends
表(包含 id
和 name
列)检索所有记录,确保特定好友(例如,id
5)首先出现在排序结果中。 我们将重点关注 MySQL 版本 5.1.x。
最有效的方法是使用条件 ORDER BY
子句:
<code class="language-sql">SELECT id, name FROM friends ORDER BY CASE WHEN id = 5 THEN 0 ELSE 1 END, id ASC;</code>
此查询通过在 id = 5
语句中为 CASE
分配值 0 来确定 id = 5
的优先级。所有其他 ID 的值均为 1,有效地将 ORDER BY id ASC
置于顶部。 然后辅助
替代(效率较低)方法:
CASE
虽然比 UNION ALL
语句方法效率低,但您可以使用
<code class="language-sql">SELECT id, name FROM friends WHERE id = 5 UNION ALL SELECT id, name FROM friends WHERE id != 5 ORDER BY id ASC;</code>
CASE
这种方法首先选择特定的ID,然后选择所有其他ID,最后对组合结果进行排序。 但是,此方法通常比
CASE
选择
以上是如何在分类的MySQL查询中首先检索特定项目?的详细内容。更多信息请关注PHP中文网其他相关文章!