Yli*_*sar 3 mysql sql sql-order-by
我正在创建一个高分服务器,其中一个所需的功能是能够检索用户当前分数的高分.我目前有以下内容:
SELECT * FROM highscores
WHERE score >= ( SELECT score FROM highscores WHERE userID = someID )
ORDER BY score, updated ASC
LIMIT -9, 19
Run Code Online (Sandbox Code Playgroud)
这里唯一的问题是LIMIT的偏移参数不能为负,否则我相信这会花花公子.总而言之,是否有任何技巧/方法可以为LIMIT偏移提供负偏移,或者是否有更好的方法可以完全解决这个问题?
你可以在对接单选选择查询中做一个真正的痛苦,或者只是这样做:
(SELECT * FROM highscores
WHERE score <= ( SELECT score FROM highscores WHERE userID = someID )
ORDER BY score, updated ASC
LIMIT 9)
UNION
(SELECT * FROM highscores
WHERE score = ( SELECT score FROM highscores WHERE userID = someID ))
UNION
(SELECT * FROM highscores
WHERE score >= ( SELECT score FROM highscores WHERE userID = someID )
ORDER BY score, updated ASC
LIMIT 9)
Run Code Online (Sandbox Code Playgroud)
我扔了一块来抓住指定用户的分数,所以它在列表的中间.如果需要,可选.另外,请勿使用SELECT*,请使用特定字段.清晰度总是更好,性能明智,*很糟糕.
| 归档时间: |
|
| 查看次数: |
4989 次 |
| 最近记录: |