MST

星途 面试题库

面试题:MySQL中AND与OR操作符优先级相关查询

假设有一个`students`表,包含`id`、`name`、`age`和`score`字段。现在要查询年龄大于18岁且成绩大于80分,或者名字为'张三'的学生信息,请写出对应的SQL语句,并解释AND与OR操作符在该语句中的优先级及执行逻辑。
48.6万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试
SELECT id, name, age, score
FROM students
WHERE (age > 18 AND score > 80) OR name = '张三';

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