Удалить строки парой столбцов, которые существуют в таблице - PullRequest
2 голосов
/ 25 марта 2011

У меня есть таблица, и мне нужно удалить строки на два столбца, например

+------+------+--------+
| col1 | col2 |  other |
+------+------+--------+
|  12  |   2  |  test  |
+------+------+--------+
|  14  |   2  |  test1 |
+------+------+--------+
|  12  |   3  |  test2 |
+------+------+--------+
|  13  |   3  |  test3 |
+------+------+--------+
|  15  |   4  |  test4 |
+------+------+--------+

и я хочу удалить строки, у которых (col1, col2) пара равна любым значениям в (12,2), (13,3), (14,2)

Могу ли я сделать это с помощью чистого SQL?

Ответы [ 2 ]

4 голосов
/ 25 марта 2011

Если у вас много значений, заполните ими таблицу и выполните:

DELETE t
FROM Table t
INNER JOIN TempTable tt
ON t.col1 = tt.col1
AND t.col2 = tt.col2
1 голос
/ 25 марта 2011

Попробуйте следующий sql:

delete from <tablename> 
where (col1 = 12 and col2 = 2) 
   or (col1 = 13 and col2 = 3) 
   or (col1 = 14 and col2 = 2)
...