mysql - mysql RC多线程先搜索后删除,但有些搜索只返回1行
问题描述
我使用mysql处理一些数据使用多线程,首先我搜索数据使用id范围,如:
select id
from xxx
where id between 1 and 1000
and accountant_time = '2021-05-31 00:00:00'
and enter_accounts_state = 1
and enter_ce_state = 2
and ebs_summary_state = 2
and is_del = 0
结果 id 像 '1, 2, 3, 4, 5, ... 1001'。
其次,我将从下面的 sql 表中删除这些带有附加条件 confirm_state 的匹配数据:
DELETE
FROM xxx
WHERE confirm_state = 3
AND id IN ( 1, 2, 3, 4, ..., 1001);
所有的id范围没有交集。</p>
我发现有些线程需要返回1001行,但只返回第一行,我尝试了几次使用相同的代码和相同的数据,但左边的数据也不相同,共同的特点是只返回需要的批次计数的第一行全部返回。</p>
当我 for update
为select sql添加时,它工作正常,
我怎么能理解会发生什么?
解决方案
推荐阅读
- amazon-s3 - terraform,s3 存储桶策略
- android - getDownloadUrl() 不工作,“HTTP 未知错误”
- javascript - 字符串拆分管道在 Mirth 连接 JavaScript 中不起作用
- ruby-on-rails - 缓存文件的 Errno::ENOENT
- c++ - 将字符串字符映射到向量
- java - 无法从 xml 中获取正确的元素
- c# - 如何从文本框中搜索数据库生成的列表框项目
- java - 使用空检查更优雅地重构多个 if/else if
- php - 拉拉维尔 | 半组装生成器中的 OrderBy 相关表的列
- javascript - 使用 javascript 创建的 svg 元素使其停留在 0 宽度和高度,直到手动修改