AND要求所有条件同时成立,OR只需任一条件成立;AND优先级高于OR,混合使用时建议加括号明确逻辑顺序。
在MySQL中,
OR
和
AND
是用于组合多个条件的逻辑操作符,它们在查询中的作用不同,直接影响结果集的范围。
AND:所有条件都必须成立
AND
表示“并且”,要求它连接的所有条件都为真,整行数据才会被选中。
例如:
查找年龄大于25
并且
姓名是 '张三' 的用户:
这条语句只会返回同时满足两个条件的记录。只要有一个条件不成立,就不会出现在结果中。
OR:至少一个条件成立即可
OR
表示“或者”,只要它连接的条件中有一个为真,整行就会被选中。
例如:
查找年龄大于25
或者
姓名是 '张三' 的用户:
这条语句会返回满足任意一个条件的记录,结果集通常比使用 AND 更大。
MySQL(Linux)
MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。
下载
优先级与括号的使用
在同一个 WHERE 子句中同时使用 AND 和 OR 时,
AND 的优先级高于 OR
,就像数学中的乘法优先于加法。
例如:
这相当于:
如果不加括号,可能得不到预期结果。为了清晰和避免错误,建议在混合使用时用括号明确逻辑分组。
基本上就这些。理解 AND 和 OR 的区别,能帮你准确筛选出想要的数据。
SELECT * FROM users WHERE age > 25 AND name = '张三';SELECT * FROM users WHERE age > 25 OR name = '张三';SELECT * FROM users WHERE age > 25 OR name = '张三' AND city = '北京';WHERE age > 25 OR (name = '张三' AND city = '北京')