Question

D'accord, je suis abit confonds ici. Dans ma base de données que j'ai 5 lignes de ces données => « string@domail.com » (en minuscules), et voici mon code, requête 1 (je suis en utilisant php et mysql):

$str = 'STRING@DOMAIN.COM';

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

echo $num;

Le résultat est 1. Mais si je change à Query2

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

Il retourne 5.

Et une autre question, qui demande dois-je utiliser si je veux connaître le nombre de lignes existent dans la base de données, requête 1 ou 2, en terme de vitesse de requête?

Était-ce utile?

La solution

$num = mysql_num_rows($sel);

retourne le nombre de lignes sélectionnées à partir de votre requête. Pour la requête un, puisque vous sélectionnez COUNT(*) de votre table, il renvoie une seule ligne avec une cellule en elle: la valeur de cette cellule est 5. La deuxième requête sélectionner toutes les entrées qui ont la valeur de $str, donc mysql_num_rows($sel); sera en effet revenir 5.

En ce qui concerne l'autre question, première requête si plus efficace, mais si vous cherchez le nombre de lignes ayant une valeur $str, ne pas utiliser mysql_num_rows() mais mysql_fetch_row () .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top