要鎖定在MySQL兩行鎖定多行,我應該使用:在MySQL(InnoDB的)
SELECT * FROM <table> WHERE id=? OR id=? FOR UPDATE;
或者:
SELECT * FROM <table> WHERE id=? AND id=? FOR UPDATE;
我明明是在事務中只是不知道它是否應該是AND
還是OR
?
要鎖定在MySQL兩行鎖定多行,我應該使用:在MySQL(InnoDB的)
SELECT * FROM <table> WHERE id=? OR id=? FOR UPDATE;
或者:
SELECT * FROM <table> WHERE id=? AND id=? FOR UPDATE;
我明明是在事務中只是不知道它是否應該是AND
還是OR
?
如果您的WHERE
子句是id=1 AND id=2
那麼沒有行將符合條件包含在結果集中,因此沒有行將被鎖定。
要鎖定兩行,您需要使用id=1 OR id=2
,這樣兩行都將包含在結果集中並將被鎖定。
無論是AND還是OR,IMO都無所謂。請參閱@ jleahy的回答。 – thekingoftruth 2014-06-26 19:37:00