在具有一个或多个AND的查询中使用多个or


Using multiple ORs inside a query with one or more ANDs

我有一个关于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)) 
) 

可能是一些显而易见的东西,但我似乎找不到。

已解决

嘿,对不起你的问题。我刚刚发现,查询在上面代码后面的某个地方模糊了一个大括号。

您可以使用IN子句而不是编写OR条件

SELECT * 
FROM Table
WHERE Col1 = 'something1' AND 
      Col2 = 'something2' AND 
      Col3 IN('Something3','Something4');
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"