我如何在 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);
我想查询以下性质:
"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);