MySQL_NUM_ROWS Recorre todas as linhas ou apenas pega um total após uma instrução SELECT?

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

  •  20-09-2019
  •  | 
  •  

Pergunta

Eu não tinha certeza se ele contou as linhas ou, se depois de recuperar todo o conjunto de resultados, ele apenas pegou a consulta total do pós?

Foi útil?

Solução

Quando você executa uma declaração, o MySQL envia a contagem de linhas no cabeçalho. Portanto, não, a consulta não está sendo executada para obter a contagem.

Isso tem uma implicação interessante para consultas com limite. mysql_num_rows () retorna o número de linhas retornadas após a aplicação do limite. Se você usar a palavra -chave SQL_CALC_FOUND_ROWS na sua instrução SELECT, o mysql_num_rows () retorna o número de linhas que teriam sido retornadas se o limite não fosse usado. Isso é útil para a paginação.

Outras dicas

Citando o manual Literalmente, ele "recupera o número de linhas de um conjunto de resultados". Obviamente, ele não executa uma segunda consulta se essa é a sua pergunta (não tenho certeza do que você quer dizer com "recontar todas as linhas").

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