Mysql 逻辑操作符and 和 or组合使用

在 MySQL 中,AND 的优先级高于 OR
当 AND 和 OR 混合使用时,AND 条件会被优先执行,除非用括号明确指定优先顺序(若改变默认的优先级,可以使用括号来明确逻辑顺序)。

例子1:

SELECT *
FROM user_profile
WHERE condition1 OR condition2 AND condition3;

等同于

SELECT *
FROM user_profile
WHERE condition1 OR (condition2 AND condition3);

如果改变默认的优先级,使用括号来明确逻辑顺序

SELECT *
FROM user_profile
WHERE (condition1 OR condition2) AND condition3;

这里OR 条件会先被计算,然后再和 condition3 结合进行 AND 计算
例子2:

SELECT device_id, gender, age, university, gpa
FROM user_profile 
WHERE gpa > 3.5 AND university = '山东大学'
   OR gpa > 3.8 AND university = '复旦大学';

首先执行 gpa > 3.5 AND university = ‘山东大学’,然后再与 gpa > 3.8 AND university = ‘复旦大学’ 进行 OR 计算,若看起来更加明确,添加括号。
上面等同于

SELECT device_id, gender, age, university, gpa
FROM user_profile 
WHERE (gpa > 3.5 AND university = '山东大学')
   OR (gpa > 3.8 AND university = '复旦大学');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值