我有以下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