Les différences de sensibilité dans le cas SELECT COUNT colonne et, mysql?
-
11-09-2019 - |
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?
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 () .