Press "Enter" to skip to content

MySQL运算符

运算符是用来连接表达式中各个操作数的符号,其作用是用来指明对操作数所进行的运算。MySQL数据库支持使用4种运算符,分别是算术运算符、比较运算符、逻辑运算符和位运算符。

运算符简介
算术运算符包括加减乘除和余这几种,主要用于数值计算
比较运算符包括>、<、=、!=、is null运算符,主要用于数值比较、字符串匹配
逻辑运算符包括与或非和异或等逻辑运算,运算结果只返回真假。
位运算符包括按位与、按位或、按位取反、按位异或、按位左移和按位右移。这些运算必须先变数值为二进制,然后在二进制数上操作。

算术运算符

\\创建一个字段为a值为24的t1表
mysql> create table t1(a int not null primary key);
mysql> insert into t1 values(24);
\\执行加减乘运算
mysql> select a,a+5+2,a-5-2,a*5*2 from t1;
+----+-------+-------+-------+
| a  | a+5+2 | a-5-2 | a*5*2 |
+----+-------+-------+-------+
| 24 |    31 |    17 |   240 |
+----+-------+-------+-------+
\\除运算和取余运算
mysql> select a,a/3,a div 3,a%3,mod(a,3) from t1;
+----+--------+---------+------+----------+
| a  | a/3    | a div 3 | a%3  | mod(a,3) |
+----+--------+---------+------+----------+
| 24 | 8.0000 |       8 |    0 |        0 |
+----+--------+---------+------+----------+

比较运算符

当使用select语句进行查询时,MySQL允许用户对表达式的左边操作数和右边操作数进行比较,结果为真,则返回1,为假则返回0,不确定则返回null.

符号形式作用
=x1=x2判断x1是否和x2相等
<>或!=x1<>x2/x1!=x2判断x1是否和x2不等
<=>x1<=>x2判断x1是否等于x2
>x1>x2判断x1是否大于x2
>=x1>=x2判断x1是否大于等于x2
<x1<x2判断x1是否小于x2
<=x1<=x2判断x1是否大于等于x2
is nullx1 is null判断x1是否等于null
is not nullx1 is not null判断x1是否不等于null
between andx1 BET判断x1是否在前后值之间
inx1 in(a,b,c,d,e,f)判断x1是否在列表之内
likex1 like 表达式判断x1是否与表达式匹配
regexpx1 regexp 正则表达式判断x1是否与正则表达式匹配
mysql> select 1=0,1=1,null=null;
+-----+-----+-----------+
| 1=0 | 1=1 | null=null |
+-----+-----+-----------+
|   0 |   1 |      NULL |
+-----+-----+-----------+
1 row in set (0.00 sec)

逻辑运算符

逻辑运算符又被称为布尔运算符,返回的结果只有1和0.

符号名称符号名称
&&/and!/NOT
II/ORXOR异或
mysql> select not 0,not 1,not null;
+-------+-------+----------+
| not 0 | not 1 | not null |
+-------+-------+----------+
|     1 |     0 |     NULL |
+-------+-------+----------+
mysql> select (1 and 1),(0 and 1),(3 and 1),(1 and null);
+-----------+-----------+-----------+--------------+
| (1 and 1) | (0 and 1) | (3 and 1) | (1 and null) |
+-----------+-----------+-----------+--------------+
|         1 |         0 |         1 |         NULL |
+-----------+-----------+-----------+--------------+

位运算符

位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,然后进行位运算,最后再将计算结果从二进制数变回十进制数。

符号名称符号名称
&按位与^按位异或
I按位或<<按位左移
~按位取反>>按位右移

tips:I替代了|,II替代||

mysql> select 2&3;
+-----+
| 2&3 |
+-----+
|   2 |
+-----+
1 row in set (0.00 sec)