OR 关键字和 AND 关键字可以一起使用,需要注意的是,AND 的优先级高于 OR。因此当两者在一起使用时,应该先运算 AND 两边的条件表达式,再运算 OR两边的条件表达式。
例如,查询 student 表中 gender 字段值为 “ 女 ” 或者 gender 字段值为 “ 男 ”,并且 grade 字段值为 100 的学生姓名,SQL语句如下所示:
SELECT name,grade,gender
FROM student
WHERE gender='女' OR gender='男' AND grade=100;
执行结果如下所示:
mysql> SELECT name,grade,gender
-> FROM student
-> WHERE gender='女' OR gender='男' AND grade=100;
+------------+-------+--------+
| name | grade | gender |
+------------+-------+--------+
| wuyong | 100 | 男 |
| husanniang | 88 | 女 |
| sunerniang | 66 | 女 |
+------------+-------+--------+
3 rows in set (0.00 sec)
从查询结果可以看到,如果 AND 的优先级和 OR 相同或者比 OR 低,AND 操作会最后执行,查询结果只会返回一条记录,记录的 grade 字段值为 100。而本例中返回了三条记录,这说明先执行的是 AND 操作,后执行的是 OR 操作,即 AND 的优先级高于 OR。