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

mysql vyberte z n posledních řádků

Počínaje odpovědí dává @chaos, ale s několika úpravami:

  • Vždy byste měli používat ORDER BY pokud používáte LIMIT . Pro tabulku RDBMS není zaručeno žádné implicitní pořadí. Můžete obvykle získat řádky v pořadí primárního klíče, ale nemůžete se na to spolehnout a ani to není přenosné.

  • Pokud objednáváte podle v sestupném pořadí, nemusíte předem znát počet řádků v tabulce.

  • Musíte zadat název korelace (alias tabulky) na odvozenou tabulku.

Zde je moje verze dotazu:

SELECT `id`
FROM (
    SELECT `id`, `val`
    FROM `big_table`
    ORDER BY `id` DESC
    LIMIT $n
) AS t
WHERE t.`val` = $certain_number;


  1. 8 funkcí pro vrácení dne z data v MariaDB

  2. 50 odstínů NULL – různé významy NULL v SQL

  3. 4 způsoby, jak získat definici pohledu pomocí Transact-SQL

  4. Zaokrouhlování na 2 desetinná místa v SQL