gpt4 book ai didi

mysql - 为什么 MySQL 对简单查询的计数不正确?

转载 作者:可可西里 更新时间:2023-11-01 06:47:55 26 4
gpt4 key购买 nike

我有以下查询:

SELECT COUNT(resource_id) AS num
FROM resources_authors
WHERE author_id=1657

这将返回正确的结果“75”。

如果我将查询更改为仅搜索不同的 ID:

SELECT COUNT(DISTINCT resource_id) AS num
FROM resources_authors
WHERE author_id=1657

我得到较低的结果“74”,这是不正确的。

但是,该表作为resource_id 的唯一索引,我已经检查并仔细检查没有重复数据。例如,我运行过:

SELECT resource_id, COUNT(resource_id) AS c
FROM resources_authors
WHERE author_id =1657
GROUP BY resource_id
ORDER BY c DESC

更奇怪的是,如果我将 LIMIT 添加到错误的查询中,它就会返回正确的结果!所以:

SELECT COUNT(DISTINCT resource_id)
FROM resources_authors
WHERE author_id=1657
LIMIT 0 , 100

正确返回 75。

我是遇到了错误,还是我误解了什么?这是一个 INNODB 表,Windows 上的 MySQL 5.5.24。

最佳答案

这是一个known MySQL bug . 5.5.35、5.6.15 和 5.7.3 变更日志中记录了此修复。

关于mysql - 为什么 MySQL 对简单查询的计数不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20648045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com