【发布时间】:2020-10-02 20:37:22
【问题描述】:
假设我有一个表,其字段 item_featured 的值为 Yes 或 No。现在我想对所有带有 YES 的行进行排序,然后是非特征项。所有将按 id 的 DESC 顺序排列。是否可以使用 1 个查询?
【问题讨论】:
标签: php mysql sql select sql-order-by
假设我有一个表,其字段 item_featured 的值为 Yes 或 No。现在我想对所有带有 YES 的行进行排序,然后是非特征项。所有将按 id 的 DESC 顺序排列。是否可以使用 1 个查询?
【问题讨论】:
标签: php mysql sql select sql-order-by
考虑条件排序:
order by (item_featured = 'Yes') desc, id desc
基本原理:表达式item_featured = 'Yes' 产生1 如果条件被满足,否则0 - 所以降序排序将'Yes' 行放在第一位。然后,第二个排序条件按 id 降序排列组内的行。
请注意,正如ChrisG 所评论的,如果'Yes' 和'No' 是唯一可能的值,则可以将其简化为:
order by item_featured desc, id desc
这是有效的,因为在字符串方面,'Yes' 大于 'No'。
【讨论】:
item_featured DESC, id DESC