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

mysql aus n letzten Zeilen auswählen

Ausgehend von der Antwort gegeben von @chaos, aber mit ein paar Modifikationen:

  • Sie sollten immer ORDER BY verwenden wenn Sie LIMIT verwenden . Für eine RDBMS-Tabelle wird keine implizite Reihenfolge garantiert. Sie können normalerweise erhält Zeilen in der Reihenfolge des Primärschlüssels, aber darauf können Sie sich nicht verlassen, und es ist auch nicht portierbar.

  • Wenn Sie in absteigender Reihenfolge sortieren, brauchen Sie die Anzahl der Zeilen in der Tabelle nicht vorher zu kennen.

  • Sie müssen einen Korrelationsnamen angeben (alias Tabellenalias) in eine abgeleitete Tabelle.

Hier ist meine Version der Abfrage:

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