我想删除2个distict行,但是使用simular数据。 3个列,1个是唯一的,另外2个是切换的。我正在使用这样的东西,但它只删除1。
DELETE FROM Table
WHERE Column1 = 'a' AND Column2 = 'b'
OR column1 = 'b' AND Column2 = 'a'
这只删除了一列语句。谢谢你的帮助
答案 0 :(得分:3)
在SQL AND
中优先于OR
。
您的where
子句被解释为
WHERE (Column1 = 'a')
AND (Column2 = 'b' OR column1 = 'b')
AND (Column2 = 'a')
这很可能不是你想要的,你应该(几乎)总是将OR'ed测试放在括号中,如下所示:
WHERE (Column1 = 'a' AND Column2 = 'b')
OR (column1 = 'b' AND Column2 = 'a')
请参阅:http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html