要在MySQL中锁定两行,我应该使用:
SELECT * FROM <table> WHERE id=? OR id=? FOR UPDATE;
Run Code Online (Sandbox Code Playgroud)
要么:
SELECT * FROM <table> WHERE id=? AND id=? FOR UPDATE;
Run Code Online (Sandbox Code Playgroud)
我显然是在交易中,只是不确定它是否应该AND
或OR
?
如果您的WHERE
子句不是id=1 AND id=2
任何行都没有资格包含在结果集中,因此不会锁定任何行.
要锁定您需要使用的id=1 OR id=2
两个行,这样两行都将包含在结果集中并将被锁定.