-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 –