在查询中使用多个OR与一个或多个AND

时间:2012-09-12 08:04:38

标签: php mysql operators conditional

我有一个关于mysql查询的问题。

我想要实现的是写一个查询:

SELECT * 
FROM Table
WHERE Col1 = 'something' AND Col2 = 'something' AND 
         ( Col3 = 'Something' OR Col3 = 'Something');

所以它看起来和你在php中使用条件语句一样:(注意或者围绕着;))

if ( $i == 'something' and ($k == 'something' || $k == 'something') ){
//Do something
}

或者还有其他/更好的方法可以做到这一点?

修改) 我现在知道查询是正确的。谢谢你向我确认。以下是导致失败的查询的一部分。

SELECT * 
FROM Table
WHERE Condition1 = 'something'
AND(
 Enddate = DATE(DATE_ADD(NOW(), INTERVAL -1 DAY)) 
OR 
 Enddate = DATE(DATE_ADD(NOW(), INTERVAL -2 DAY)) 
) 

可能是显而易见的东西,但我似乎无法找到它。

(的解决

嘿抱歉这个问题。 我刚刚发现查询在上面的代码之后的某个地方发出了一个右括号。

2 个答案:

答案 0 :(得分:1)

您可以使用OR子句

,而不是编写IN条件
SELECT * 
FROM Table
WHERE Col1 = 'something1' AND 
      Col2 = 'something2' AND 
      Col3 IN('Something3','Something4');

答案 1 :(得分:0)

SELECT * 
FROM Table
WHERE Condition1 = 'something'
AND(
 Enddate = DATE(DATE_ADD(NOW(), INTERVAL -1 DAY)) 
OR 
 Enddate = DATE(DATE_ADD(NOW(), INTERVAL -2 DAY)) 
)

不需要“as kuur”