Mysql
 sql >> Base de données >  >> RDS >> Mysql

Décalage de limite négative dans mysql

Vous pouvez soit faire une vraie douleur dans la requête à sélection unique, soit simplement faire ceci :

(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)

J'ai jeté un morceau pour saisir le score de l'utilisateur indiqué afin qu'il soit au milieu de la liste. Facultatif si vous en avez besoin. Aussi, n'utilisez pas SELECT *, utilisez des champs spécifiques. La clarté est toujours préférable, et en termes de performances, * craint.