我有以下sql查询,它将id为627的数据拉到顶部,然后显示具有其他id的数据

$sql_query = "select * from listing ORDER BY case when listing.makaan_id='627' then 1 else 2 end, listing_id DESC LIMIT {$start}, {$limit}";


我使用php分页系统对结果进行分页,其中我将分页限制设置为10。现在我只想在ID 627的顶部显示4个结果,而在其他ID的情况下显示其他结果,因此在10个结果的集合中4个来自ID 627和其他6个将来自其他ID,我是否有任何解决方案而无需编写另一个单独的sql语句?

最佳答案

您可以尝试这样的事情

SELECT *
  FROM listing
 WHERE makaan_id = 627
 ORDER BY listing_id DESC
 LIMIT 4
UNION ALL
SELECT *
  FROM listing
 WHERE makaan_id <> 627
    OR makaan_id IS NULL
 ORDER BY listing_id DESC
 LIMIT {$start} - 4, {$limit} - 4

09-27 15:55