所以我知道在MySQL有可能在一個查詢中插入多行,像這樣:MySQL的刪除一個查詢條件多行唯一的每一行
INSERT INTO table (col1,col2) VALUES (1,2),(3,4),(5,6)
我想以類似的方式來刪除多行。我知道這是可能的基礎上刪除的每一行完全相同的條件下多行,即
DELETE FROM table WHERE col1='4' and col2='5'
或
DELETE FROM table WHERE col1 IN (1,2,3,4,5)
但是,如果我想在一個查詢刪除多行,每行有一組獨特的條件?像這樣的東西將是我在找什麼:
DELETE FROM table WHERE (col1,col2) IN (1,2),(3,4),(5,6)
有沒有人知道的方法來做到這一點?還是不可能?
@amitkate,爲什麼不呢? – Pacerier 2015-04-09 14:09:20
請注意,在MySQL 5.6中,由於元組比較最終會進行表掃描,因此執行效果不佳。您應該更喜歡「WHERE(COL1 = 1 AND COL2 = 2)OR(COL1 = 3 AND COL2 = 4)...」以獲得更好的性能。這固定在5.7。 – ep4169 2016-03-11 17:26:48
如果有人很好奇,這是在@ ep4169引用的5.7.3中修復的錯誤:https://bugs.mysql.com/bug.php?id=31188 – Kip 2017-02-09 20:26:49