作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个 SQL 语句:
SELECT * FROM `table` WHERE type = 3 OR type = 5 OR type = 4 and table.deleted = 1;
我读过我可以使用括号来完成此操作,但我想知道这是否有效:
SELECT * FROM `table` WHERE (type = 3 OR type = 5 OR type = 4) and table.deleted = 1;
或
SELECT * FROM `table` WHERE (type = 3 OR type = 5) OR type = 4 and table.deleted = 1;
最佳答案
这两个都是有效的,但是 since AND
has higher precedence than OR
,它们意味着不同的东西:
您可以通过使用运算符 IN
来完全避免混淆,如下所示:
SELECT * FROM `table` WHERE type IN (3, 4, 5) AND table.deleted = 1;
或者如果你想要第二个意思
SELECT * FROM `table` WHERE type IN (3, 5) OR (type = 4 AND table.deleted = 1)
关于mysql - 如何在我的 SQL 语句中组合 AND 和 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32464879/
我是一名优秀的程序员,十分优秀!