vlambda博客
学习文章列表

Java知识-[MySQL中的运算符]

Java知识-[MySQL中的运算符]

MySQL 的运算符及运算符的优先级。MySQL 主要有以下几种运算符:

  • 算术运算符

  • 比较运算符

  • 逻辑运算符

  • 位运算符


一、算术运算符

除法和取余,除数为0,将是非法除数,返回结果为NULL。

Java知识-[MySQL中的运算符]

除法和取余,除数为0,将是非法除数,返回结果为NULL。

1、加
mysql> select 1+2;
结果:3
+-----+
2、减
mysql> select 1-2;
结果:-1
+-----+
3、乘
mysql> select 2*3;
结果:6
+-----+
4、除
mysql> select 2/3;
结果:0.6667
+--------+
5、商
mysql> select 10 DIV 4;
结果:2
+----------+
6、取余
mysql> select 10 MOD 4;
结果:2
+----------+

二、比较运算符

比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NULL。

Java知识-[MySQL中的运算符]

比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NULL。

1、等于
mysql> select 2=3;
结果:0
+-----+
mysql> select NULL = NULL;
结果:NULL
+-------------+
2、不等于
mysql> select 2<>3;
结果:1
+------+
3、安全等于
与 = 的区别在于当两个操作码均为 NULL 时,其所得值为 1 而不为 NULL,而当一个操作码为 NULL 时,其所得值为 0而不为 NULL。
mysql> select 2<=>3;
结果:0
+-------+
mysql> select null=null;
结果:NULL
+-----------+
mysql> select null<=>null;
结果:1
+-------------+
4、小于
mysql> select 2<3;
结果:1
+-----+
5、小于等于
mysql> select 2<=3;
结果:1
+------+
6、大于
mysql> select 2>3;
结果:0
+-----+
7、大于等于
mysql> select 2>=3;
结果:0
+------+
8、BETWEEN
mysql> select 5 between 1 and 10;
结果:1
+--------------------+
9、IN
mysql> select 5 in (1,2,3,4,5);
结果:1
+------------------+
10、NOT IN
mysql> select 5 not in (1,2,3,4,5);
结果:0
+----------------------+
11、IS NULL
mysql> select null is NULL;
结果:1
+--------------+
mysql> select 'a' is NULL;
结果:0
+-------------+
12、IS NOT NULL
mysql> select null IS NOT NULL;
结果:0
+------------------+

mysql> select 'a' IS NOT NULL;
结果:1
+-----------------+
13、LIKE
mysql> select '12345' like '12%';
结果:1
+--------------------+
mysql> select '12345' like '12_';
结果:0
+--------------------+
14、REGEXP
mysql> select 'beijing' REGEXP 'jing';
结果:1
+-------------------------+
mysql> select 'beijing' REGEXP 'xi';
结果:0
+-----------------------+

三、逻辑运算符

表达式是真,结果返回 1。表达式是假,结果返回 0。

Java知识-[MySQL中的运算符]

表达式是真,结果返回 1。表达式是假,结果返回 0。

1、与
mysql> select 2 and 0;
结果:0
+---------+
mysql> select 2 and 1;
结果:1
+---------+
2、或
mysql> select 2 or 0;
结果:1
+--------+
mysql> select 2 or 1;
结果:1
+--------+
mysql> select 0 or 0;
结果:0
+--------+
mysql> select 1 || 0;
结果:1
+--------+
3、非
mysql> select not 1;
结果:0
+-------+
mysql> select !0;
结果:1
+----+
4、异或
mysql> select 1 xor 1;
结果:0
+---------+
mysql> select 0 xor 0;
结果:0
+---------+
mysql> select 1 xor 0;
结果:1
+---------+
mysql> select null or 1;
结果:1
+-----------+
mysql> select 1 ^ 0;
结果:1
+-------+

四、位运算符(使用比较少)

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

位运算符是在二进制数上进行计算的运算符

1、按位与
mysql> select 3&5;
结果:1
+-----+
2、按位或
mysql> select 3|5;
结果:7
+-----+
3、按位异或
mysql> select 3^5;
结果:6
+-----+
4、按位取反
mysql> select ~18446744073709551612;
结果:3
+-----------------------+
5、按位右移
mysql> select 3>>1;
结果:1
+------+
6、按位左移
mysql> select 3<<1;
结果:6
+------+

运算符优先级

最高优先级为 :=