Więc wiem w MySQL to możliwe, aby wstawić wiele wierszy w jednej kwerendzie tak:MySQL usunąć wiele wierszy w warunkach jednego zapytania unikalne dla każdego wiersza
INSERT INTO table (col1,col2) VALUES (1,2),(3,4),(5,6)
Chciałbym usunąć wiele wierszy w podobny sposób . Wiem, że to możliwe, aby usunąć wiele wierszy w oparciu o te same warunki dla każdego wiersza, tj
DELETE FROM table WHERE col1='4' and col2='5'
lub
DELETE FROM table WHERE col1 IN (1,2,3,4,5)
Jednak co, jeśli chciałem usunąć wiele wierszy w jednym zapytaniu, a każda wiersz mający zestaw wyjątkowych dla siebie warunków? Coś takiego byłoby to, czego szukam:
DELETE FROM table WHERE (col1,col2) IN (1,2),(3,4),(5,6)
Czy ktoś wie o sposobie, aby to zrobić? Czy to nie jest możliwe?
@amitkate, czemu nie? – Pacerier
Należy pamiętać, że w MySQL 5.6 będzie to działało słabo, ponieważ porównanie krotek kończy się skanowaniem tabeli. Powinieneś preferować "WHERE (col1 = 1 AND col2 = 2) OR (col1 = 3 AND col2 = 4) ..." dla lepszej wydajności. Naprawiono to w 5.7. – ep4169
Jeśli ktoś jest ciekawy, jest to błąd, który został naprawiony w 5.7.3, że odniesienia @ ep4169: https://bugs.mysql.com/bug.php?id=31188 – Kip