Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql selecionar a partir de n últimas linhas


A partir da resposta dado por @chaos, mas com algumas modificações:

  • Você deve sempre usar ORDER BY se você usar LIMIT . Não há ordem implícita garantida para uma tabela RDBMS. Você pode geralmente obter linhas na ordem da chave primária, mas você não pode confiar nisso, nem é portátil.

  • Se você ordenar por ordem decrescente, não precisa saber o número de linhas na tabela de antemão.

  • Você deve fornecer um nome de correlação (também conhecido como alias de tabela) para uma tabela derivada.

Aqui está minha versão da consulta:
SELECT `id`
FROM (
    SELECT `id`, `val`
    FROM `big_table`
    ORDER BY `id` DESC
    LIMIT $n
) AS t
WHERE t.`val` = $certain_number;