se eu usar LIMIT em uma consulta de mysql, deve o conjunto de resultados ser igual ao limite?
Pergunta
por exemplo, irá select * from table limit 0,5
retorno no máximo 5 linhas ou
deve encontrar exatamente 5 e se o does not row_count igualar 5, ele retorna um conjunto de resultados vazio?
que se a consulta foi select * from table limit 5
?
Solução
Consulta SELECT * FROM table LIMIT 0,5
retornará 5 registros a partir do primeiro registro.
Consulta SELECT * FROM table LIMIT 5
também dará o mesmo resultado que consulta acima.
Se na tabela há menos de 5 registros, então não vai falhar, mas retorno quaisquer registros estão lá.
Consulta SELECT * FROM table LIMIT 6,5
voltará registro 7,8,9,10,11 como o índice começa a partir de 0.
Outras dicas
http://dev.mysql.com/doc/refman/ 5.1 / en / select.html
"A cláusula LIMIT pode ser usado para restringir o número de linhas retornadas pela instrução SELECT. LIMIT leva um ou dois argumentos numéricos, que devem estar constantes inteiro não negativo (exceto quando usar declarações preparadas). Com dois argumentos, o primeiro especifica argumento o deslocamento da primeira linha de retorno, eo segundo especifica o número máximo de linhas para retornar. "
Assim, para responder sua pergunta diretamente, ele iria retornar , no máximo 5 linhas.
O limite é, também, um limite, então ele não vai voltar mais do que esta quantidade de linhas. Ele pode retornar menos.
Em consulta "select * from tabela limite 0,5" 0 não especificar os registros mínimos de retorno. Ele especifica a diferença. Então, quando você diz 0, se a consulta "SELECT * FROM tabela" retorna 10 registros, "limite de 0,5" retornará o primeiro 5. Se você usar "limite de 5,5" ele retornará últimos 5 registros.
Se você tem apenas 2 registros, ele irá retornar dois registros. Não retornará um erro se você não tem resultados. Limite é o limite máximo. Mínimo pode ser qualquer coisa, até mesmo 0 registros.
"select * from tabela limite 5" é o mesmo que "select * from tabela limite 0,5"