我正在使用SQL语句来检索列表中的前5个条目:
SELECT ... FROM table ORDER BY someColumn DESC LIMIT 5
Run Code Online (Sandbox Code Playgroud)
结果将如下所示:
Name Count
Person B 10
Person D 8
Person A 5
Person E 5
Person C 4
Run Code Online (Sandbox Code Playgroud)
如果有更多的结果,如列表中的第五个条目(示例中为4),我也想展示它们.有没有办法通过单个查询实现这一目标?
所以我们假设完整列表如下所示:
Name Count
Person B 10
Person D 8
Person A 5
Person E 5
Person C 4
Person H 4
Person I 4
------------
Person G 3
Person F 1
Person J 1
Run Code Online (Sandbox Code Playgroud)
如何修改我的查询以返回前七个结果?显然我不能使用LIMIT 7或者WHERE Count >= 4,因为我事先并不知道.
你的意思是你想要第五个结果,但是所有其他结果都排在第5位,对吗?一种解决方案是首先获得第5个结果 - 使用子查询 - 然后得到您需要的结果:
SELECT ...
FROM table
WHERE someColumn >=
( SELECT someColumn
FROM table
ORDER BY someColumn DESC
LIMIT 4, 1 <-- only the 5th
)
ORDER BY someColumn DESC
Run Code Online (Sandbox Code Playgroud)