sql >> Database teknologi >  >> RDS >> Mysql

mysql vælg fra n sidste rækker

Startende fra svaret givet af @kaos, men med nogle få ændringer:

  • Du skal altid bruge ORDER BY hvis du bruger LIMIT . Der er ingen implicit rækkefølge garanteret for en RDBMS-tabel. Du kan normalt få rækker i rækkefølgen af ​​den primære nøgle, men du kan ikke stole på dette, og det er heller ikke bærbart.

  • Hvis du bestiller efter i faldende rækkefølge, behøver du ikke kende antallet af rækker i tabellen på forhånd.

  • Du skal give et korrelationsnavn (aka tabel alias) til en afledt tabel.

Her er min version af forespørgslen:

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


  1. Dvaledialekt for Oracle Database 11g?

  2. Rul A tilbage, hvis B går galt. fjederstøvle, jdbctemplate

  3. ClusterControl 1.5 - Automatisk sikkerhedskopieringsbekræftelse, byg slave fra sikkerhedskopiering og skyintegration

  4. Søg efter alle forekomster af en streng i en mysql-database