sql >> Base de Datos >  >> RDS >> Mysql

Compensación de límite negativo en mysql

Puede hacer un verdadero dolor en la consulta de selección única a tope, o simplemente hacer esto:

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

Lancé una pieza para tomar el puntaje del usuario indicado para que esté en el medio de la lista. Opcional si lo necesitas. Además, no use SELECT *, use campos específicos. La claridad siempre es preferible, y en cuanto al rendimiento, * apesta.