要锁定在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