3、比较运算符
比较运算符用来对表达式左边的操作数和右边的操作数进行比较,比较的结果为真则返回1,比较的结果为假则返回0,其他情况则返回NULL。比较运算符经常被用来作为SELECT查询语句的条件来使用,返回符合条件的结果记录。
运算符 | 名称 | 作用 | 示例 |
= | 等于运算符 | 判断表达式是否相等 | SELECT 1 = 2; |
<=> | 安全等于运算符 | 判断表达式是否相等,可以判断NULL,结果是0或1,不是NULL | SELECT 1 <=> NULL,NULL <=> NULL; |
<>或!= | 不等于运算符 | 判断两个值是否不相等 | SELECT 1 <>(!=) 2; |
< | 小于运算符 | 判断小于 | SELECT 1 < 2; |
<= | 小于等于运算符 | 判断小于等于 | SELECT 1 <= 2; |
> | 大于运算符 | 判断大于 | SELECT 1 > 2; |
>= | 大于等于运算符 | 判断大于等于 | SELECT 1 >= 2; |
1、等号运算符
等号运算符(=)判断等号两边的值、字符串或表达式是否相等,如果相等则返回1,不相等则返回0。
在使用等号运算符时,遵循如下规则:
- 如果等号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的是每个字符串中字符的ANSI编码【就是 ASCII 编码】是否相等。
- 如果等号两边的值都是整数,则MySQL会按照整数来比较两个值的大小。
- 如果等号两边的值一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较。
- 如果等号两边的值、字符串或表达式中有一个为NULL,则比较结果为NULL。
2、安全等于运算符
安全等于运算符(<=>)与等于运算符(=)的作用是相似的,唯一的区别是‘<=>’可以用来对NULL进行判断。在两个操作数均为NULL时,其返回值为1,而不为NULL;当一个操作数为NULL 时,其返回值为0,而不为NULL
对比:SQL中赋值符号使用 :
SELECT 1 = 2,'a' = 'a',1 = 'a',1 = NULL,NULL = NULL
FROM DUAL;
结果集
0 1 0 null null
SELECT 1 <=> NULL,NULL <=> NULL
FROM DUAL;
结果集
0 1
3、不等于运算符
不等于运算符(<>和!=)用于判断两边的数字、字符串或者表达式的值是否不相等,如果不相等则返回1,相等则返回0。
不等于运算符不能判断NULL值。如果两边的值有任意一个为NULL,或两边都为NULL,则结果为NULL。
SELECT 1 != 1,1 != 2,1 != NULL,NULL != NULL
FROM DUAL;
结果集
0 1 null null
SELECT 1 <> 1,1 <> 2,1 <> NULL,NULL <> NULL
FROM DUAL;
结果集
0 1 NULL NULL
4、大于小于运算符
比较运算符两边值或表达式大小,左边大于右边就返回1,右边大于左边就是0.小于号也是一样的。有NULL参加就是NULL
一般作为条件查询where条件
SELECT 1 < 8,9 > 2,1 < NULL,NULL > NULL
FROM DUAL;
结果集
1 1 null null
SELECT last_name,salary
FROM employees
WHERE salary > 5000;
SELECT last_name,salary
FROM employees
WHERE salary >= 5000;
SELECT last_name,salary
FROM employees
WHERE salary < 5000;
SELECT last_name,salary
FROM employees
WHERE salary <= 5000;