sql >> Databáze >  >> RDS >> Mysql

Záporný posun limitu v mysql

Můžete buď udělat skutečnou bolest v zadku single select dotaz, nebo prostě udělat toto:

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

Hodil jsem kus, abych získal uvedené skóre uživatele, takže je uprostřed seznamu. Volitelné, pokud to potřebujete. Také nepoužívejte SELECT *, použijte specifická pole. Jasnost je vždy výhodnější a výkon je * na hovno.




  1. Vypočítejte delta (rozdíl aktuálního a předchozího řádku) v sql

  2. Jakou verzi PostgreSQL používám?

  3. Prohledávejte MySQL pomocí PHP a zobrazujte výsledky na stejné stránce

  4. Jak načíst data mysql pomocí Java multi-threading