面试题答案
一键面试SELECT id, name, age, score
FROM students
WHERE (age > 18 AND score > 80) OR name = '张三';
在上述SQL语句中,AND
操作符的优先级高于OR
操作符。也就是说,先执行AND
连接的条件,即先判断age > 18
和score > 80
这两个条件是否同时满足。只有当这两个条件都满足时,才会将对应的记录纳入到OR
操作符的判断中。如果记录不满足age > 18 AND score > 80
,则会判断是否满足name = '张三'
这个条件。如果满足其中任何一个条件(age > 18 AND score > 80
或者name = '张三'
),则该条学生记录就会被查询出来。通过括号()
可以改变操作符的优先级,如果没有括号,按照默认优先级,AND
会先于OR
执行,可能会导致不符合预期的查询结果。所以在需要明确逻辑关系时,使用括号来确保条件按预期顺序执行是很重要的。