Pergunta

Ok, eu estou ABIT confundindo aqui. No meu banco de dados Eu tenho 5 linhas de dados => "string@domail.com" (em minúsculas), e este é meu código, Consulta 1 (estou usando php e mysql):

$str = 'STRING@DOMAIN.COM';

$sel = mysql_query("SELECT COUNT(*) 
                    FROM table 
                    WHERE `column` = '{$str}'");
$num = mysql_num_rows($sel);

echo $num;

O resultado é 1. Mas se eu mudar para Query2

SELECT column 
FROM table 
WHERE `column` = '{$str}'"

Ele retorna 5.

E outra questão é, qual consulta que eu deveria usar se eu quiser saber o número de linhas existem no banco de dados, consulta 1 ou 2, em termos de velocidade de consulta?

Foi útil?

Solução

$num = mysql_num_rows($sel);

Esta retorna o número de linhas selecionadas de sua consulta. Para consulta um, desde que você escolha COUNT(*) de sua mesa, ele retorna uma única linha com uma célula em que: o valor desta célula é 5. A segunda consulta selecionar todas as entradas que têm o valor de $str, então mysql_num_rows($sel); vai realmente voltar 5.

Quanto à outra pergunta, primeira consulta se mais eficiente, mas se você está procurando o número de linhas com valor $str, não use mysql_num_rows() mas mysql_fetch_row () .

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