关于 Mysql 查询的疑问

2021-12-30 14:35:51 +08:00
 asd8423
select count(1) as count from t_parcel where t_user_id = '276' and t_present_id = '1' and t_type = '2'

在多次连续查询数据表的条数时,有时会查询返回 0 ,求教下为什么会出现这种情况。

背景:

  1. 这是赠送礼物前判断礼物是否足够执行的 SQL
  2. 测试环境,数据量并不大 而且数据表数据条数不变 正常查询结果为 5000
  3. 开始以为是业务层面出现的问题,后台在 Mysql 客户端测试也会出现
  4. Mysql 版本 4.7.28
2527 次点击
所在节点    MySQL
14 条回复
thetbw
2021-12-30 14:50:52 +08:00
加个事务试试,或者 select for update
asd8423
2021-12-30 15:04:53 +08:00
@thetbw 试咯 不太行
shanghai1943
2021-12-30 15:19:35 +08:00
实在不行就试着不要在 sql 里 count(),而是先把明细数据通过 select * 都查出来,然后自己 count 看看有多少数据,这样就可以知道哪些数据多查出来了。多对比几次,应该就能知道原因了。
MoYi123
2021-12-30 17:23:28 +08:00
Mysql 版本 4.7.28? 这是什么远古版本吗? 还是 mysql 有其他的版本号?
thinkershare
2021-12-30 18:12:49 +08:00
这么古老的 MySQL 是个啥鬼? MyISAM 这种存储引擎吗?
zoharSoul
2021-12-30 19:41:59 +08:00
mysql 还有这个版本的吗?
SmartKeyerror
2021-12-30 20:11:39 +08:00
Google 了一下,4.7 版本应该是在 2005 年左右 GA ,既感叹这古老的版本,又感叹这项目在不升级底层存储的情况下竟然能跑 16 年
ksedz
2021-12-30 20:46:53 +08:00
5.7.28 ?
leafre
2021-12-30 21:02:12 +08:00
Mysql 版本 4.7.28 ?
hzjiyu
2021-12-30 21:08:29 +08:00
@SmartKeyerror 应该是 5.7.28 。能看到的 MySQL 5.1 最低了,项目寿命十年成考古了。我认为不存在有 4.7.28 这种。你 Google 能 Google 到这个版本 tag ?
fanshaohua
2021-12-30 23:20:12 +08:00
我也怀疑是 transaction ,并且数据本身同时被修改的问题
没可能数据库会直接返回一个错误的 count.
shyangs
2021-12-30 23:32:45 +08:00
@SmartKeyerror
@hzjiyu
MySQL v4 系列, 只有 v4.0 和 v4.1 沒有 v4.7
siweipancc
2021-12-31 09:18:34 +08:00
试试看计算主键,要是统计 bug 就好玩了
SmartKeyerror
2021-12-31 11:16:41 +08:00
@hzjiyu 这我还真没注意

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/825299

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX