我如何在 mysql 查询 where 子句中为 OR 提供比 AND 更高的优先级?

How do i provide higher precedence to OR than AND in mysql query where clause?

我想查询以下性质:

"SELECT * FROM table1 where column1=1 OR column2=1 OR column3=1 AND column4=1 OR column5=1";

根据运算符的优先级,先进行AND运算,再进行OR运算。但就我而言,我想要那个 column1=1 OR column2=1 OR column3=1 --> 这个和 column4=1 OR column5=1 --> 这首先执行,这些结果通过 AND 运算绑定为最终结果。

我能否像在大多数编程语言中那样只添加括号以获得 OR 的更高优先级,或者这是如何完成的?

您需要使用括号将每个部分包裹起来,如下所示:

SELECT * FROM table1 
where (column1=1 OR column2=1 OR column3=1) AND (column4=1 OR column5=1)

您可以添加括号。此外,您可以使用 IN:

表达逻辑
SELECT *
FROM table1 
WHERE 1 IN (column1, column2, column3) AND 1 IN (column4, column5);