我在MySQL中有一个表格,该表格包含我网站上广告的信息。在某些情况下,需要在查询结果的顶部添加一行以使其在页面中首先显示,而其他某些行可能经常需要这样做。我正在寻找将特定行上推到查询结果顶部的正确方法。

完成此任务的最佳解决方案是什么?

最佳答案

假设您的特殊行具有类似SpecialAd的字段

 SELECT *
 FROM YourTable
 ORDER BY CASE
              WHEN `SpecialAd` = true THEN 0
                                      ELSE 1
          END,
          OtherSortField


这样,所有SpecialAd都将首先显示,然后您可以使用第二个SortField在每个组内进行排序。

09-11 18:33