-1
如何在mysql中选择更新记录的ID;在mysql中选择更新记录
有没有办法做这样的事情
select Id from (update tblA set col1=false where col2 > 5)
如何在mysql中选择更新记录的ID;在mysql中选择更新记录
有没有办法做这样的事情
select Id from (update tblA set col1=false where col2 > 5)
你不能,你必须在更新之前将其选中。
如果您的表使用InnoDB存储引擎,请使用SELECT FOR UPDATE锁定选定行并防止其他客户端插入,更新或删除选定行。
START TRANSACTION;
SELECT id FROM tblA WHERE col2 > 5 FOR UPDATE;
UPDATE tblA SET col1 = false WHERE col2 > 5;
COMMIT;
另一种替代方法是将某些列设置为客户端唯一的值(例如进程ID)以及使用该值进行选择时的值。 但它需要一个额外的列。
UPDATE tblA SET col1 = false, process_id = 12345 WHERE col2 > 5 AND process_id IS NULL;
SELECT id FROM tblA WHERE process_id = 12345
除非您通过一些样本输入和预期输出解释您的需求,否则它仍然不清楚。 – 1000111
怎么样:'select * from tblA where col2> 5'? –
我想更新,然后选择更新记录的ID –