sql >> Databasteknik >  >> RDS >> Mysql

mysql välj från n sista raderna

Från och med svaret ges av @kaos, men med några modifieringar:

  • Du bör alltid använda ORDER BY om du använder LIMIT . Det finns ingen implicit ordning garanterad för en RDBMS-tabell. Du kan vanligtvis hämta rader i ordningen för primärnyckeln, men du kan inte lita på detta, och det är inte heller bärbart.

  • Om du beställer efter i fallande ordning behöver du inte veta antalet rader i tabellen i förväg.

  • Du måste ange ett korrelationsnamn (alias tabellalias) till en härledd tabell.

Här är min version av frågan:

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


  1. sp_add_schedule vs sp_add_jobschedule i SQL Server:Vad är skillnaden?

  2. Statisk och dynamisk datamaskering i FieldShield

  3. Hur man skriver en ORDER BY-klausul med undantag med hjälp av SQL

  4. Ändra PostgreSql-databaskodning