where条件查询出来的结果,跟条件值不一致

mysql> select goods_id,pid from xxxxxx ignore index(primary) where goods_id = ‘1330377950148’ and pid > ‘100000559347’ and pid < ‘100000559349’;
Empty set

mysql>

抱歉。。可以用这个

select goods_id,pid, concat(goods_id, pid) from xxxxxx ignore index(primary) where goods_id = '1330377950148' and pid = '100000559348';

mysql> select goods_id,pid, concat(goods_id, pid) from xxxxxx where goods_id = ‘1330377950148’ and pid = ‘100000559348’;
±--------------±-------------±--------------------------+
| goods_id | pid | concat(goods_id, pid) |
±--------------±-------------±--------------------------+
| 1331151860187 | 100000570587 | 1331151860187100000570587 |
±--------------±-------------±--------------------------+
1 row in set

mysql> select goods_id,pid, concat(goods_id, pid) from xxxxxx ignore index(primary) where goods_id = ‘1330377950148’ and pid = ‘100000559348’;
Empty set

mysql>

mysql>

mysql>

mysql> select goods_id,pid from xxxxxx where goods_id = ‘1330377950148’ and pid = ‘100000559348’;
±--------------±-------------+
| goods_id | pid |
±--------------±-------------+
| 1331151860187 | 100000570587 |
±--------------±-------------+
1 row in set

mysql> select goods_id,pid from xxxxxx ignore index(primary) where goods_id = ‘1330377950148’ and pid = ‘100000559348’;
±--------------±-------------+
| goods_id | pid |
±--------------±-------------+
| 1331151860187 | 100000570587 |
±--------------±-------------+
1 row in set

mysql>

select goods_id,pid, concat(goods_id, pid) from xxxxxx ignore index(primary) where goods_id = ‘1331151860187’ and pid = ‘100000570587’;

好的 谢谢 帮忙再查下这个,初步看是恢复后表数据和索引数据不一致了。。可以晚上流量低帮忙 admin check table 下

对了 再确认下另外 where goods_id = ‘1330377950148’ and pid = ‘100000559348’ 这个查询在源库上执行是没有问题的哈?

谢谢兄弟支持!有任何想法都照办。

mysql> select goods_id,pid, concat(goods_id, pid) from xxxxxx ignore index(primary) where goods_id = ‘1331151860187’ and pid = ‘100000570587’;
±--------------±-------------±--------------------------+
| goods_id | pid | concat(goods_id, pid) |
±--------------±-------------±--------------------------+
| 1331151860187 | 100000570587 | 1331151860187100000570587 |
| 1331151860187 | 100000570587 | 1331151860187100000570587 |
±--------------±-------------±--------------------------+
2 rows in set

mysql> select goods_id,pid, concat(goods_id, pid) from xxxxxx where goods_id = ‘1331151860187’ and pid = ‘100000570587’;
±--------------±-------------±--------------------------+
| goods_id | pid | concat(goods_id, pid) |
±--------------±-------------±--------------------------+
| 1331151860187 | 100000570587 | 1331151860187100000570587 |
±--------------±-------------±--------------------------+
1 row in set

mysql>

在源库执行正常,没任何问题

的确是恢复后表数据和索引数据不一致了。
我刚刚用mysqldump出insert的语句重建了表,这种方式的数据就正常了

这个问题之前也存在过,BR全量迁移后:
select count() from tb 与 select count() from tb where 1=1 行数不一致

所以BR工具是有啥问题吧?

想问下:有什么方法可以查看到所有有异常的数据行?

问下这楼 是在源库执行的结果?

Hello. 請問這是在 4.0.5 的源庫上執行的還是 4.0.11 的目標庫上執行的?

从目前出错情况如果没其他写错模式可以:

select count(1) c, goods_id,pid from xxxxxx ignore index(primary) group by goods_id,pid having c > 1;

目标库执行的结果,源库查询正常

4.0.11 的目標庫上執行的

1 个赞

没有主键的表 ,如何查呢?

之前这个表差异数据有4600+行有问题,现在怀疑其他表也有类似问题。

另外,我们备份全是用的BR,照这个势头BR备份方式是不是也有问题,关于集群备份,官方是什么建议?存储最大的一套集群大概20T+

官方有没有交流群,求入群:crazy_face:

有的,稍后私信发给你~
但由衷的希望在TUG中进行问题的交流解决~

官方尝试复现一下 如果可复杂 提个issue吧 看看如何修复

可以加我微信:
billmay

我邀请你进群,但是提问技术问题还是需要回到 Asktug 论坛来提问哟~

建议先 admin check table 确定表有没有问题。。

admin check table 不能精确到行但是可以排除没问题的表