2011-03-25 36 views
2

我有一个表,我需要两列删除行,例如删除行

+------+------+--------+ 
| 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执行此操作吗?

+0

您正在使用的数据库管理器? – MacGucky 2011-03-25 18:42:28

+0

@macgucky:SQLite – RYN 2011-03-25 18:44:12

回答

4

如果你有很多的值,填充表与他们做:

DELETE t 
FROM Table t 
INNER JOIN TempTable tt 
ON t.col1 = tt.col1 
AND t.col2 = tt.col2 
1

试试下面的SQL:

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

嗨,我有很多对必须删除,我希望能够使用像“IN”语句。没有其他方案? – RYN 2011-03-25 18:41:14

+0

参见例如解决方案由JNK提供。 – Howard 2011-03-25 18:48:20