删除2行1个Sql语句mysql

时间:2011-09-24 03:14:39

标签: mysql sql

我想删除2个distict行,但是使用simular数据。 3个列,1个是唯一的,另外2个是切换的。我正在使用这样的东西,但它只删除1。

DELETE FROM Table 
WHERE Column1 = 'a' AND Column2 = 'b' 
   OR column1 = 'b' AND Column2 = 'a'

这只删除了一列语句。谢谢你的帮助

1 个答案:

答案 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