mysql中的负限制偏移量

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偏移提供负偏移,或者是否有更好的方法可以完全解决这个问题?

Dav*_*lls 7

你可以在对接单选选择查询中做一个真正的痛苦,或者只是这样做:

(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*,请使用特定字段.清晰度总是更好,性能明智,*很糟糕.