se eu usar LIMIT em uma consulta de mysql, deve o conjunto de resultados ser igual ao limite?

StackOverflow https://stackoverflow.com/questions/490651

  •  20-08-2019
  •  | 
  •  

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?

Foi útil?

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"

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top