5、逻辑运算符
逻辑运算符主要用来判断表达式的真假,在MySQL中,逻辑运算符的返回结果为1、0或者NULL。
运算符 | 作用 | 示例 |
---|---|---|
NOT 或 ! | 逻辑非 | SELECT NOT A |
AND 或 && | 逻辑与 | SELECT A AND B |
OR 或 || | 逻辑或 | SELECT A OR B;SELECT A || B |
XOR | 逻辑异或 | SELECT A XOR B; |
1、逻辑与运算
逻辑与(AND或&&)运算符是当给定的所有值均为非0值,并且都不为NULL时,返回 1;当给定的一个值或者多个值为0时则返回0;否则返回NULL。
SELECT last_name,salary,department_id
FROM employees
WHERE department_id = 60 AND salary > 6000;
SELECT 1 && 1,1 AND 0,1 AND NULL
FROM DUAL;
结果集
1 0 null
2、逻辑或运算
逻辑或(OR或||)运算符是当给定的值都不为NULL,并且任何一个值为非0值时,则返回1,否则返回0;当一个值为NULL,并且另一个值为非0值时,返回1,否则返回NULL;当两个值都为 NULL时,返回NULL。
SELECT 1 OR 1,1 || 0,0 OR 0,1 OR NULL
FROM DUAL;
结果集
1 1 0 1
SELECT last_name,salary,department_id
FROM employees
WHERE department_id = 60 OR salary > 6000;
注意:
OR可以和AND一起使用,但是在使用时要注意两者的优先级,由于AND的优先级高于OR,因此先对AND两边的操作数进行操作,再与OR中的操作数结合。
3、逻辑非运算
逻辑非(NOT或!)运算符表示当给定的值为0时返回1;当给定的值为非0值时返回0;当给定的值为NULL时,返回NULL。
SELECT 1 OR 1,1 || 0,0 OR 0,1 OR NULL
FROM DUAL;
结果集
0 1 0 null
SELECT last_name,salary,department_id
FROM employees
WHERE NOT department_id = 60 OR salary > 6000;
4、逻辑异或运算
逻辑异或(XOR)运算符是当给定的值中任意一个值为NULL时,则返回NULL;如果两个非NULL的值都是0或者都不等于0时,则返回0;如果一个值为0,另一个值不为0时,则返回1。
SELECT 1 XOR 1,1 XOR 0,1 XOR NULL
FROM DUAL;
结果集
0 1 null
SELECT last_name,salary,department_id
FROM employees
WHERE department_id = 60 XOR salary > 6000;