SELECT ... FOR SHARE 可能是你想要的。从 MySQL docs :
SELECT ... FOR SHARE
对任何读取的行设置共享模式锁。其他会话可以读取行,但在事务提交之前不能修改它们。如果这些行中的任何一行被另一个尚未提交的事务更改,则查询将一直等到该事务结束,然后使用最新的值。
在交易开始时, 选择…为了分享 您计划更新的所有行,然后继续实际更新。
选择…为了分享