MySQL COUNT 给出不同的结果
Posted
技术标签:
【中文标题】MySQL COUNT 给出不同的结果【英文标题】:MySQL COUNT Giving DIfferent Results 【发布时间】:2019-04-11 02:51:40 【问题描述】:如果我在 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;
$Query,在这种情况下,包含:
SELECT COUNT(ID) AS UpdateCount
FROM tablename
WHERE ShowPage = 1 AND
DateUpdated BETWEEN 1554345942 AND 1554950742
【问题讨论】:
【参考方案1】:在做其他事情的时候,这个问题的答案突然打动了我,现在我明白了。我在查询中使用 COUNT(ID),但也在编程中使用 $result->num_rows。只需删除 COUNT(ID) 就可以了。
SELECT ID
FROM tablename
WHERE ShowPage = 1 AND
DateUpdated BETWEEN 1554345942 AND 1554950742
【讨论】:
很好地找到它。接受并投票赞成您的答案,以便未来有相同或类似问题的访问者受益! @Don't Panic 谢谢你,我对此感到有点愚蠢,但我确信我错过了一些显而易见的事情。令我惊讶的是,这里的锐利眼睛没有立即发现它!无论如何,我无法对自己的答案投赞成票,而且我看到有人出于某种未知原因投了反对票,但如果我再等九个小时,我可以将其标记为已接受。【参考方案2】:如果尚未提交另一个数据库会话,则可能会出现此问题。确保没有其他尚未提交的数据库会话可以解决此问题。
【讨论】:
可能,但即使没有运行其他查询,它似乎也始终不正确。在 HeidiSQL 和 phpmyadmin 中总是正确的,但在 PHP 中从来没有,所以我怀疑它比我错过的更基本。奇怪,我用同样的代码很久了,才注意到这个问题。以上是关于MySQL COUNT 给出不同的结果的主要内容,如果未能解决你的问题,请参考以下文章
相同的mysql查询在phpmyadmin的不同时间给出不同的结果
MySQL 专家:为啥 2 个查询给出不同的“解释”索引使用结果?