MySQL_NUM_ROWS Recorre todas as linhas ou apenas pega um total após uma instrução SELECT?
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?
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").