Различия в чувствительности к регистру в SELECT COLUMN и COUNT, mysql?

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

Вопрос

Хорошо, я здесь немного путаю.В моей базе данных у меня есть 5 строк этих данных => «string@domail.com» (все строчные буквы), и это мой код, запрос 1 (я использую php и mysql):

$str = 'STRING@DOMAIN.COM';

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

echo $num;

Результат 1.Но если я перейду на Query2

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

Он возвращает 5.

И еще один вопрос: какой запрос мне следует использовать, если я хочу узнать количество строк, существующих в базе данных, запрос 1 или 2, с точки зрения скорости запроса?

Это было полезно?

Решение

$num = mysql_num_rows($sel);

Это возвращает количество строк, выбранных из вашего запроса.Для первого запроса, поскольку вы выбираете COUNT(*) из вашей таблицы он возвращает одну строку с одной ячейкой:значение этой ячейки равно 5.Второй запрос выбирает все записи, имеющие значение из $str, так mysql_num_rows($sel); действительно вернет 5.

Что касается другого вопроса, сначала запросите, если он более эффективен, но если вы ищете количество строк со значением $str, не использовать mysql_num_rows() но mysql_fetch_row().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top