Recentemente, deparei-me com códigos de exemplo, que diferiam nessas anotações.
SELECT * FROM table LIMIT 0, 1
SELECT * FROM table LIMIT 1
O primeiro argumento deve ser considerado o deslocamento, se não estiver errado, o objetivo dessas duas consultas é limitar a seleção até a primeira linha de table
Existe algum efeito negativo ao deixar de fora o deslocamento / como é possível deixá-lo de fora em primeiro lugar? Ou entendi mal as consultas?
LIMIT 1 OFFSET 0
. Mas você realmente deve incluirORDER BY
qualquer consulta que tenhaLIMIT
, a menos que haja um motivo específico para não fazê-lo.Respostas:
Como a documentação diz:
A
LIMIT
cláusula é usada naSELECT
instrução para restringir o número de linhas em um conjunto de resultados. ALIMIT
cláusula aceita um ou dois argumentos. Os valores de ambos os argumentos devem ser zero ou constantes inteiras positivas.A seguir, ilustra a
LIMIT
sintaxe da cláusula com 2 argumentos:Vamos ver o que o deslocamento e a contagem significam na cláusula LIMIT:
offset
especifica o deslocamento da primeira linha a retornar. O deslocamento da primeira linha é 0, não 1.count
especifica o número máximo de linhas a serem retornadas.Quando você usa
LIMIT
um argumento, esse argumento será usado para especificar o número máximo de linhas a serem retornadas desde o início do conjunto de resultados.SELECT * FROM tbl
LIMIT count;
A consulta acima é equivalente à seguinte consulta com a
LIMIT
cláusula que aceita dois argumentos:SELECT * FROM tbl
LIMIT 0, count;
A
LIMIT
cláusula frequentemente usada comORDER BY
cláusula. Primeiro, você usa aORDER BY
cláusula para classificar o conjunto de resultados com base em um determinado critério e, em seguida, usa aLIMIT
cláusula para encontrar valores mais baixos ou mais altos.fonte