MySQL COUNT дает разные результаты - PullRequest
0 голосов
/ 11 апреля 2019

Если я использую это в PHP для подсчета записей, он дает счет 1, когда фактически нет записей. Тем не менее, когда я выполняю тот же запрос в HeidiSQL, phpmyadmin или любом другом, он дает правильный 0. Почему расхождение?

if ($result = $mysqli->query($Query)) :
    return $result->num_rows;
    $MySQLError = ($mysqli->connect_errno) ? mysqli_error($mysqli) : "";
    $result->close();
    $mysqli->close();
    if ($MySQLError) return $MySQLError;
endif;

$ Запрос, в данном случае, содержит:

SELECT COUNT(ID) AS UpdateCount 
FROM tablename 
WHERE ShowPage = 1 AND 
DateUpdated BETWEEN 1554345942 AND 1554950742

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Работая над чем-то другим, ответ на эту проблему неожиданно для меня прозвучал, и теперь стало ясно, что я это вижу. Я использовал COUNT (ID) в запросе, но также использовал $ result-> num_rows в программировании. Простое удаление COUNT (ID) сделало свое дело.

SELECT ID 
FROM tablename 
WHERE ShowPage = 1 AND 
DateUpdated BETWEEN 1554345942 AND 1554950742
0 голосов
/ 11 апреля 2019

Эта проблема может возникнуть, если другой сеанс базы данных еще не был зафиксирован.Убедиться, что нет других сеансов базы данных, которые не были зафиксированы, решает эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...