Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Negativer Grenzwertversatz in mysql

Sie können entweder eine wirklich schmerzhafte Single-Select-Abfrage durchführen oder einfach dies tun:

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

Ich habe ein Stück hineingeworfen, um die Punktzahl des angezeigten Benutzers zu erfassen, sodass sie in der Mitte der Liste steht. Optional, wenn Sie es brauchen. Verwenden Sie auch nicht SELECT *, verwenden Sie bestimmte Felder. Klarheit ist immer vorzuziehen, und in Bezug auf die Leistung ist es scheiße.