文章目录

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • MySQL运算符优先级


sqlMySQL的运算符主要包括算术运算符、逻辑运算符、比价运算符和位运算符

算术运算符

MySQL支持的算术运算符包括加、减、乘、除、模运算

运算符

作用

+


-


*


/,DIV


%,MOD

模运算

+ 返回一个或多个值的和

- 返回一个值减去另一个值

* 返回一个或多个值的乘积

/ 一个值除以另一个值的商

% 一个值除以另一个值的余数

除法和模运算如果除数为零,属于非法运算,返回值为NULL

select 10/0,100%0;

mysql字段除法运算 mysql字段加减乘除运算_mysql字段除法运算

比较运算符

比价运算符用来比较左右两边的值,比较结果为真,返回1,为假返回0,比较结果不确定放回NULL

运算符

作用

=

等于

!= 或<>

不等于

<=>

NULL安全的等于

<

小于

<=

小于等于

>

大于

>=

大于等于

BETWEEN

存在于指定范围

IN

存在于指定集合

IS NULL

查询结果集是否为NULL

IS NOT NULL

查询结果集是否部位NULL

LIKE

通配符匹配

REGEXP或RLIKE

正则表达式匹配

比较运算符可以用于比较数字、字符串和表达式。数字作为浮点数比较,字符串以不区分大小写的方式比较。

  • =运算符用于比较两边的操作数是否相等,相等则返回1,否则返回0,NULL用于=比较
select 1=1,1=0,NULL=NULL;

mysql字段除法运算 mysql字段加减乘除运算_操作符_02

  • <>!=运算符,和=相反,两边的操作数不同返回1,相等返回0,NULL不等用<>比较
select 1<>1,1<>0,NULL<>NULL;

mysql字段除法运算 mysql字段加减乘除运算_运算符_03

  • <=>NULL安全的 运算符,和=类似,两边的操作数相等时返回1,两边的操作数不相等时返回0,与=不同的是,即使两边的操作数都为NULL也可以正确比较。
select 1<=>1,1<=>0,NULL<=>NULL;

mysql字段除法运算 mysql字段加减乘除运算_操作符_04

  • <运算符,当左侧的操作数小于右侧的操作数时,返回1,否则返回0
select 0<1,1<1,1<0;

mysql字段除法运算 mysql字段加减乘除运算_运算符_05

  • <=运算符,当左侧的操作符小于等于右侧的操作符时返回1,否则返回0
select 1<=1,1<=0,1<=0,'a'<='b';

mysql字段除法运算 mysql字段加减乘除运算_mysql_06

  • >运算符,当左侧操作数大于右侧操作数时,返回1,否则返回0
select 1>1,1>0,'a'>'b','c'>'b';

mysql字段除法运算 mysql字段加减乘除运算_mysql_07

  • >=操作符,当左侧操作符大于等于右侧操作符时,返回1,否则返回0
select 1>=1,1>=0,0>=1,'c'>='b';

mysql字段除法运算 mysql字段加减乘除运算_操作符_08

  • BETWEEN操作符的格式为a BETWEEN min AND max,如果a大于等于min并且小于等于max,则返回1,否则返回0,当a、min、max类型相同时,等价于a >= min AND a <=max,当类型不同时,hi遵循类型转换原则,先做类型转换,在进行比较。
select 10 BETWEEN 10 AND 20,9 BETWEEN 10 AND 20;

mysql字段除法运算 mysql字段加减乘除运算_mysql_09

  • IN运算符的格式为a in (value1,values2,...,valuen),如果a存在于列表中则返回1,否则返回0
select 1 in (1,2,3), 't' in ('t','a',1,'b'),0 in (1,2);

mysql字段除法运算 mysql字段加减乘除运算_mysql字段除法运算_10

  • IS NULL的使用格式为 a IS NULL,如果a的值为NULL,返回1,否则返回0
select 1 IS NULL,NULL iS NULL;

mysql字段除法运算 mysql字段加减乘除运算_运算符_11

  • IS NOT NULL的使用格式为 a IS NOT NULL,和 IS NULL相反,如果a的值不为NULL则返回1,否则返回0
select 1 IS NOT  NULL,NULL IS NOT  NULL;

mysql字段除法运算 mysql字段加减乘除运算_运算符_12

  • LIKE运算符的使用格式为 a LIKE %123%,如果a中包含123,返回1,否则返回0
select 123456 LIKE '%123%',123456 LIKE '123%',123456 LIKE '%321%';

mysql字段除法运算 mysql字段加减乘除运算_mysql_13

  • REGEXP运算符的使用格式为 str REGEXP str_pat 当str中含有与str_pat相匹配的字符串时,返回1,否则返回0
select 'abcdef' REGEXP 'ab','abgfty' REGEXP 'k';

mysql字段除法运算 mysql字段加减乘除运算_操作数_14

逻辑运算符

逻辑运算符又称布尔运算符,用来判断表达式的真假,MySQL支持4种逻辑运算符

运算符

作用

NOT或!·

逻辑非

AND或&&

逻辑与

OR 或 ||

逻辑或

XOR

逻辑异或

  • NOT表示逻辑非。返回结果和操作数相反,如果操作数为假则返回1,如果操作数为真则返回0,NOT NULL的返回值为NULL
select NOT 0,NOT 1,NOT NULL;

mysql字段除法运算 mysql字段加减乘除运算_操作符_15

  • AND&&表示逻辑与,当操作数中不存在非0或非NULL的值时,返回1,当一个或多个操作数为0时,返回0,当操作数中有NULL时返回NULL。
select 1 && 2 && 4,1 && 0 && 2,1 && NULL && 2;

mysql字段除法运算 mysql字段加减乘除运算_运算符_16

  • OR||表示逻辑或,当两个操作数均为非 NULL 值时,如有任意一个操作数为非零值,则结果为 1,否则结果为 0。当有一个操作数为 NULL时,如另一个操作数为非零值,则结果为 1,否则结果为 NULL。假如两个操作数均为 NULL,则所得结果为 NULL
select 1 || 0 || NULL,0 || 0 || 0, NULL || 0 || NULL,NULL || NULL || NULL;

mysql字段除法运算 mysql字段加减乘除运算_mysql字段除法运算_17

  • XOR表示逻辑异或,当任意一个操作数为NULL时,返回NULL,当两个操作数都不为NULL时,如果两个操作数真假相异返回1,否则返回0
select NULL XOR 1,NULL XOR 0,1 XOR 0,1 XOR 1,0 XOR 0;

mysql字段除法运算 mysql字段加减乘除运算_mysql字段除法运算_18

位运算符

位运算是将给定的操作数转化为二进制后,对各个操作数每一位都进行指定的逻辑运算,得到的二进制结果转换为十进制数后就是位运算的结果

运算符

作用

&

位与(AND)

|

位或(OR)

^

位异或(XOR)

~

位取反

>>

位右移

<<

位左移

MySQL运算符优先级

优先级

运算符

1

:=

2

|| OR XOR

3

&&, AND

4

NOT

5

BETWEEN, CASE, WHEN, THEN, ELSE

6

=, <=>,> , >=, <, <=,<>, !=,IS,LIKE,REGEXP,IN

7

|

8

&

9

<<, >>

10

-,+

11

* , /, DIV, %, MOD

12

^

13

-,~

14

!