小编Jak*_*cki的帖子

来自MySQL的查询结果不一致

今天我们在SQL查询中发现了一个奇怪的行为(我们使用MySQL v5.6.36和InnoDB).

拿这个查询:

mysql> SELECT count(*)  FROM `inventory` WHERE `user_id` = 12345;
Run Code Online (Sandbox Code Playgroud)

它返回以下结果:

+----------+
| count(*) |
+----------+
|      495 |
+----------+
Run Code Online (Sandbox Code Playgroud)

但是当运行以下查询时:

mysql> SELECT count(*)  FROM `inventory` WHERE `user_id` = 12345 AND list_type = 3;
Run Code Online (Sandbox Code Playgroud)

我们得到:

+----------+
| count(*) |
+----------+
|     1263 |
+----------+
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,当查询受到限制时,结果计数会更大,这不应该发生.可能是什么原因造成的?它仅在master数据库中发生,而两个复制数据库都显示正确的结果.我们怀疑索引已损坏.如何防止将来出现此类错误?

除了list_type返回无效(太高)之外的任何其他条件也是重要的.

mysql sql

11
推荐指数
2
解决办法
601
查看次数

标签 统计

mysql ×1

sql ×1