mysql中的四大运算符种类实例汇总(20多项) 

 更新时间:2022年7月26日 13:42  点击:216 作者:公号运维家

运用运算法有什么好处呢?

运用运算符可以更加灵活的使用表中的数据,我们可以通过使用运算符来解决我们的很多问题,大大提高效率。

什么是运算符

运算符是告诉mysql执行特定算术或者逻辑操作的符号。

mysql的内部运算符很丰富,主要有四大类,分别是:

算术运算符:用于各类数值运算

  • 加(+)
  • 减(-)
  • 乘(*)
  • 除(/)
  • 求余(或者称模运算)(%)
  • 比较运算符:用于比较运算
  • 大于(>)
  • 小于(<)
  • 等于(=)
  • 大于等于(>=)
  • 小于等于(<=)
  • 不等于(!=)
  • IN、BETWEEN AND、IS NULL、GREATEST、LEAST、LIKE、REGEXP
  • 逻辑运算符:求值所得结果均为1(TRUE)、0(FALSE),这类运算符有:
  • 逻辑非(NOT或者!)
  • 逻辑与(AND或者&&)
  • 逻辑或(OR或者||)
  • 逻辑异或(XOR)
  • 位运算符:参与运算的操作数按二进制位进行运算
  • 位与(&)
  • 位或(|)
  • 位非(~)
  • 位异或(^)
  • 左移(<<)
  • 右移(>>)

可以看到上面有多达20多种运算符,我们接下来就根据这个来一一进行整理。

算术运算符

算术运算符是sql中最基本的运算符;

老规矩,一切都在操作中;

举个例子

创建表一个名为yunweijia_1的数据表;

mysql> create table yunweijia_1 (num int);
Query OK, 0 rows affected (0.04 sec)
mysql> show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| yunweijia_1 |
+-------------------+
1 row in set (0.00 sec)

mysql>

yunweijia_1的数据表中插入数据;

mysql> insert into yunweijia_1 values (66);
Query OK, 1 row affected (0.01 sec)

mysql>

加法和减法运算

mysql> select num, num+10, num-10, num+10-5, num-5+10 from yunweijia_1;
+------+--------+--------+----------+----------+
| num | num+10 | num-10 | num+10-5 | num-5+10 |
+------+--------+--------+----------+----------+
| 66 | 76 | 56 | 71 | 71 |
+------+--------+--------+----------+----------+
1 row in set (0.00 sec)

mysql>

从上面可以看到,我们可以对num字段的值进行加法和减法的运算,而且+- 的优先级相同,先加后减或者先减后加的结果是相同的哈。

乘法、除法和求余运算

mysql> select num, num*2, num/2, num%22, num%30 from yunweijia_1;
+------+-------+---------+--------+--------+
| num | num*2 | num/2 | num%22 | num%30 |
+------+-------+---------+--------+--------+
| 66 | 132 | 33.0000 | 0 | 6 |
+------+-------+---------+--------+--------+
1 row in set (0.00 sec)

mysql>

从上面可以看到,对num进行除除法运算的时间,66被2整除之后,小数位也是保留了4位小数的。求余运算的时候,由于66被22整除了,所以余数是0,但是66无法被30整除,所以余数就是6了。

注意点:

在数学运算时,除数为0的除法是没有意义的,因此除法运算中的除数不能为0,如果被0除的话,结果会返回NULL

如下:

mysql> select num, num/0, num%0 from yunweijia_1; +------+-------+-------+ | num | num/0 | num%0 | +------+-------+-------+ | 66 | NULL | NULL | +------+-------+-------+ 1 row in set (0.00 sec) mysql>

比较运算符

一个比较运算符的结果总是1、0或者null。比较运算符经常在select的查询条件子句中使用,用来查询满足指定条件的记录。

等于运算符(=)

如果相等,返回值为1,否则返回值为0;

mysql> select 1=0, '2'=2, 2=2, '0.01'=0, 'a'='a', (1+5)=(8-2), NULL=NULL;
+-----+-------+-----+----------+---------+-------------+-----------+
| 1=0 | '2'=2 | 2=2 | '0.01'=0 | 'a'='a' | (1+5)=(8-2) | NULL=NULL |
+-----+-------+-----+----------+---------+-------------+-----------+
| 0 | 1 | 1 | 0 | 1 | 1 | NULL |
+-----+-------+-----+----------+---------+-------------+-----------+
1 row in set (0.00 sec)

mysql>

从结果可以看到哈,在进行判断时,2=2和'2'=2的返回值是相同的,都是1,这是为啥呢,是因为在进行判断时,mysql自动进行了转换,把字符2转换成了数字2;'a'='a'是相同的字符比较,因此返回值为1;表达式的话就因为等号(=)两边计算结果一致,所以返回值是1,由于(=)不能用于空值NULL的判断,因此返回值为NULL

所以数值比较时有以下规则:

  • 若有一个或者两个参数为NULL,则比较运算的结果为NULL
  • 若容一个比较运算中的两个参数都是字符串,则按照字符串进行比较;
  • 若两个参数均为整数的话,则按照整数进行比较;
  • 若用字符串和数字进行相等判断,则mysql自动可以将字符串转换为数字。

安全等于运算符(<=>)

mysql中的安全等于运算符和等于运算符类似,不过呢,安全等于运算符可以用来判断NULL值。在两个操作数均为NULL时,其返回值为1,而不是直接返回NULL;反之,当一个操作数为NULL,其返回值为0,而也不是NULL

mysql> select 1<=>0, '2'<=>2, 2<=>2, '0.01'<=>0, 'a'<=>'a', (1+5)<=>(8-2), NULL<=>NULL, 3<=>NULL;
+-------+---------+-------+------------+-----------+---------------+-------------+----------+
| 1<=>0 | '2'<=>2 | 2<=>2 | '0.01'<=>0 | 'a'<=>'a' | (1+5)<=>(8-2) | NULL<=>NULL | 3<=>NULL |
+-------+---------+-------+------------+-----------+---------------+-------------+----------+
| 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
+-------+---------+-------+------------+-----------+---------------+-------------+----------+
1 row in set (0.00 sec)

mysql>

不等于运算符(<>或者!=)

'<>'或者'!='用于判断数字、字符串、表达式不相等的判断;如果不相等,返回值为1;否则返回值为0;

注意:

这两个运算符不能用于判断空值NULL

mysql> select 'goot'<>'good', 'good'!='good', 1<>2, 4!=4, 5.5!=5, (9-3)!=(9-5), NULL<>NULL;
+----------------+----------------+------+------+--------+--------------+------------+
| 'goot'<>'good' | 'good'!='good' | 1<>2 | 4!=4 | 5.5!=5 | (9-3)!=(9-5) | NULL<>NULL |
+----------------+----------------+------+------+--------+--------------+------------+
| 1 | 0 | 1 | 0 | 1 | 1 | NULL |
+----------------+----------------+------+------+--------+--------------+------------+
1 row in set (0.00 sec)

mysql>

小于等于运算符(<=)

用来判断左边的操作数是否小于等于右边的操作数。

如果小于等于,返回值为1,否则返回值为0。同样的,<=不能用于判断空值NULL

mysql> select 'good'<='good', 'good'<='goood', 'good'<='god', 1<=2, 3<=2, (4+1)<=(9-8), NULL<=NULL;
+----------------+-----------------+---------------+------+------+--------------+------------+
| 'good'<='good' | 'good'<='goood' | 'good'<='god' | 1<=2 | 3<=2 | (4+1)<=(9-8) | NULL<=NULL |
+----------------+-----------------+---------------+------+------+--------------+------------+
| 1 | 1 | 0 | 1 | 0 | 0 | NULL |
+----------------+-----------------+---------------+------+------+--------------+------------+
1 row in set (0.00 sec)

mysql>

小于运算符(<)

用来判断左边的操作数是否小于右边的操作数;

如果小于,返回值为1,否则返回值为0。<不能用于判断空值NULL

mysql> select 'good'<'good', 'good'<'goodd', 'good'<'god', 1<2, 2<2, 5<3, NULL<NULL;
+---------------+----------------+--------------+-----+-----+-----+-----------+
| 'good'<'good' | 'good'<'goodd' | 'good'<'god' | 1<2 | 2<2 | 5<3 | NULL<NULL |
+---------------+----------------+--------------+-----+-----+-----+-----------+
| 0 | 1 | 0 | 1 | 0 | 0 | NULL |
+---------------+----------------+--------------+-----+-----+-----+-----------+
1 row in set (0.00 sec)

mysql>

大于等于运算符(>=)

用来判断左边的操作数是否大于等于右边的操作数。

如果大于等于,返回值为1;否则返回值为0。不能用于判断空值NULL

mysql> select 'good'>='good', 'good'>='goodd', 'good'>='god', 1>=2, 2>=1, (5+5)>=(6-2), NULL>=NULL;
+----------------+-----------------+---------------+------+------+--------------+------------+
| 'good'>='good' | 'good'>='goodd' | 'good'>='god' | 1>=2 | 2>=1 | (5+5)>=(6-2) | NULL>=NULL |
+----------------+-----------------+---------------+------+------+--------------+------------+
| 1 | 0 | 1 | 0 | 1 | 1 | NULL |
+----------------+-----------------+---------------+------+------+--------------+------------+
1 row in set (0.00 sec)

mysql>

大于运算符(>)

用来判断左边的操作数是否大于右边的操作数。

如果大于,返回值为1;否则返回值为0。不能用于判断空值NULL

mysql> select 'good'>'good', 'good'>'goood', 'good'>'god', 2>1, 3>5, (9+9)>(1+2), NULL>NULL;
+---------------+----------------+--------------+-----+-----+-------------+-----------+
| 'good'>'good' | 'good'>'goood' | 'good'>'god' | 2>1 | 3>5 | (9+9)>(1+2) | NULL>NULL |
+---------------+----------------+--------------+-----+-----+-------------+-----------+
| 0 | 0 | 1 | 1 | 0 | 1 | NULL |
+---------------+----------------+--------------+-----+-----+-------------+-----------+
1 row in set (0.00 sec)

mysql>

IS NULL(ISNULL)和(IS NOT NULL)运算符

is nullisnull用来检验一个值是否为NULL

如果是NULL,返回值为1,否则返回值为0。

is not null用来检验一个值是否为非NULL

如果是非NULL,返回值为1,否则返回值为0。

mysql> select null is null, isnull(null), isnull(99), 99 is not null;
+--------------+--------------+------------+----------------+
| null is null | isnull(null) | isnull(99) | 99 is not null |
+--------------+--------------+------------+----------------+
| 1 | 1 | 0 | 1 |
+--------------+--------------+------------+----------------+
1 row in set (0.00 sec)

mysql>

BETWEEN AND运算符

语法格式:

expr between min and max

如果expr大于等于min且小于等于max,则between的返回值为1,否则返回值为0。

mysql> select 4 between 1 and 5, 4 between 4 and 5, 9 between 1 and 8, 7 between 10 and 12;
+-------------------+-------------------+-------------------+---------------------+
| 4 between 1 and 5 | 4 between 4 and 5 | 9 between 1 and 8 | 7 between 10 and 12 |
+-------------------+-------------------+-------------------+---------------------+
| 1 | 1 | 0 | 0 |
+-------------------+-------------------+-------------------+---------------------+
1 row in set (0.00 sec)

mysql>

LEAST运算符

语法格式:

least (值1,值2,...,值n)

在有两个或者多个参数的情况下,返回最小值。如果任意一个自变量为NULL,则LEAST()返回的值为NULL

mysql> select least(0,1,2,3), least(1.0,5,99), least('a', 'b', 'c'), least(0,null,9);
+----------------+-----------------+----------------------+-----------------+
| least(0,1,2,3) | least(1.0,5,99) | least('a', 'b', 'c') | least(0,null,9) |
+----------------+-----------------+----------------------+-----------------+
| 0 | 1.0 | a | NULL |
+----------------+-----------------+----------------------+-----------------+
1 row in set (0.00 sec)

mysql>

GREATEST(VALUE1, VALUE2,......)

当有两个或者多个参数时,返回最大值。如果任意一个自变量为NULL,则grestest()返回的值为NULL

mysql> select greatest(0,1,2,3), greatest(1.0,5,99), greatest('a', 'b', 'c'), greatest(0,null,9);
+-------------------+--------------------+-------------------------+--------------------+
| greatest(0,1,2,3) | greatest(1.0,5,99) | greatest('a', 'b', 'c') | greatest(0,null,9) |
+-------------------+--------------------+-------------------------+--------------------+
| 3 | 99.0 | c | NULL |
+-------------------+--------------------+-------------------------+--------------------+
1 row in set (0.00 sec)

mysql>

IN、NOT IN 运算符

in运算符用来判断操作数是否为in列表中的其中一个值;

如果是,返回值为1,否则的话返回值为0。

mysql> select 9 in (1,4,9,10,'yunweijia'), 'yunweijia' in (1,4,9,10,'yunweijia'), 1 in (2,4,5);
+-----------------------------+---------------------------------------+--------------+
| 9 in (1,4,9,10,'yunweijia') | 'yunweijia' in (1,4,9,10,'yunweijia') | 1 in (2,4,5) |
+-----------------------------+---------------------------------------+--------------+
| 1 | 1 | 0 |
+-----------------------------+---------------------------------------+--------------+
1 row in set, 1 warning (0.00 sec)

mysql>

not in运算符用来判断表达式是否为in列表中的其中一个值;

如果不是,返回值为1,否则的话返回值为0。

mysql> select 9 not in (1,4,9,10,'yunweijia'), 'yunweijia' not in (1,4,9,10,'yunweijia'), 1 not in (2,4,5);
+---------------------------------+-------------------------------------------+------------------+
| 9 not in (1,4,9,10,'yunweijia') | 'yunweijia' not in (1,4,9,10,'yunweijia') | 1 not in (2,4,5) |
+---------------------------------+-------------------------------------------+------------------+
| 0 | 0 | 1 |
+---------------------------------+-------------------------------------------+------------------+
1 row in set, 1 warning (0.00 sec)

mysql>

in里面存在null值,如果运算符不成立的话,直接返回null

mysql> select 9 in (1,4,9,10, null), 'yunweijia' in (1,4,9,10,'yunweijia', null), 1 in (2,4,5, null);
+-----------------------+---------------------------------------------+--------------------+
| 9 in (1,4,9,10, null) | 'yunweijia' in (1,4,9,10,'yunweijia', null) | 1 in (2,4,5, null) |
+-----------------------+---------------------------------------------+--------------------+
| 1 | 1 | NULL |
+-----------------------+---------------------------------------------+--------------------+
1 row in set, 1 warning (0.00 sec)

mysql>

like运算法

用来匹配字符串;语法格式:

expr like 匹配条件

如果expr满足匹配条件,则返回值为1,否则返回值为0。

expr或匹配条件中任何一个为null,则结果为null

like运算符在进行匹配的时候,可以使用通配符,如下:

  • %匹配任何数目的字符,甚至包括零字符;
  • _只能匹配一个字符;

mysql> select 'yunweijia' like 'yunweijia', 'ywj' like 'yw_', 'ywj' like 'y%', 'ywj' like 'yunweijia';
+------------------------------+------------------+-----------------+------------------------+
| 'yunweijia' like 'yunweijia' | 'ywj' like 'yw_' | 'ywj' like 'y%' | 'ywj' like 'yunweijia' |
+------------------------------+------------------+-----------------+------------------------+
| 1 | 1 | 1 | 0 |
+------------------------------+------------------+-----------------+------------------------+
1 row in set (0.00 sec)

mysql>

REGEXP运算符

mysql中的正则表达式,用来匹配字符串,语法格式为:

expr regexp 匹配条件

如果expr满足匹配条件,返回1,否则返回0,如果expr或匹配条件任意一个为NULL,则结果为NULL

regexp运算符在进行匹配时,常用的有以下几种通配符:

  • ^匹配以该字符后面的字符开头的字符串
  • $匹配以该字符前面的字符结尾的字符串
  • .匹配任意一个单字符
  • [...]匹配在方括号内的任何字符,例如:[abc]匹配'a','b','c'。常用的还有[a-z]匹配任何字母,而[0-9]匹配任何数字
  • *匹配另个或者多个在他前面的字符,例如:'x*'匹配任何数量的'x'字符,[0-9]*匹配任何数字,*匹配任何数量的任何字符。

mysql> select 'yunweijia' regexp '^y', 'ywj' regexp 'j$', 'ywj' regexp 'y*j', 'ywj' regexp "['ywj', 'aa', 'bb']";
+-------------------------+-------------------+--------------------+------------------------------------+
| 'yunweijia' regexp '^y' | 'ywj' regexp 'j$' | 'ywj' regexp 'y*j' | 'ywj' regexp "['ywj', 'aa', 'bb']" |
+-------------------------+-------------------+--------------------+------------------------------------+
| 1 | 1 | 1 | 1 |
+-------------------------+-------------------+--------------------+------------------------------------+
1 row in set (0.00 sec)

mysql>

逻辑运算符

mysql中所有逻辑运算符的求值所得结果均为TRUEFALSENULL

mysql中,他们提现为1(TRUE)、0(FALSE)和NULL

NOT或!

逻辑非运算符not或者!,表示当操作数为0时,所得值为1;

当操作数为非零值时,所得值为0;

当操作数为null时,所得的返回值为null

mysql> select not 10, not (1-1), not -5, not null, not 1+1;
+--------+-----------+--------+----------+---------+
| not 10 | not (1-1) | not -5 | not null | not 1+1 |
+--------+-----------+--------+----------+---------+
| 0 | 1 | 0 | NULL | 0 |
+--------+-----------+--------+----------+---------+
1 row in set (0.00 sec)

mysql>

小提示:

在使用运算符计算时,一定要注意不同运算符的优先级不同。如果不能确定计算顺序,最好使用括号,以保证运算结果的正确。

ADD或者&&

逻辑与运算符add或者&&表示当所有操作数均为非零值,并且不为null时,计算所得结果为1,;

当一个或多个操作数为0时,所得结果为0;

其余情况返回值为null

mysql> select 9 and -9, 1 and 0, 1 and null, 0 and null;
+----------+---------+------------+------------+
| 9 and -9 | 1 and 0 | 1 and null | 0 and null |
+----------+---------+------------+------------+
| 1 | 0 | NULL | 0 |
+----------+---------+------------+------------+
1 row in set (0.01 sec)

mysql> select 9 && -9, 1 && 0, 1 && null, 0 && null;
+---------+--------+-----------+-----------+
| 9 && -9 | 1 && 0 | 1 && null | 0 && null |
+---------+--------+-----------+-----------+
| 1 | 0 | NULL | 0 |
+---------+--------+-----------+-----------+
1 row in set, 4 warnings (0.00 sec)

mysql>

or或者||

逻辑或运算符or或者||表示当两个操作数均为非null值且任意一个操作数为非零值时,结果为1,否则结果为0;

当有一个操作数为null,且另一个操作数为非零值时,则结果为1,否则结果为null

当两个操作数均为null时,则所得结果为null

mysql> select 9 or -9 or 0, 1 or 2, 0 or 0, 1 or null, 0 or null, null or null;
+--------------+--------+--------+-----------+-----------+--------------+
| 9 or -9 or 0 | 1 or 2 | 0 or 0 | 1 or null | 0 or null | null or null |
+--------------+--------+--------+-----------+-----------+--------------+
| 1 | 1 | 0 | 1 | NULL | NULL |
+--------------+--------+--------+-----------+-----------+--------------+
1 row in set (0.00 sec)

mysql> select 9 || -9 || 0, 1 || 2, 0 || 0, 1 || null, 0 || null, null || null;
+--------------+--------+--------+-----------+-----------+--------------+
| 9 || -9 || 0 | 1 || 2 | 0 || 0 | 1 || null | 0 || null | null || null |
+--------------+--------+--------+-----------+-----------+--------------+
| 1 | 1 | 0 | 1 | NULL | NULL |
+--------------+--------+--------+-----------+-----------+--------------+
1 row in set, 7 warnings (0.00 sec)

mysql>

XOR

逻辑异或运算符xor表示当任意一个操作数为null时,返回值为null

对于非null的操作数,如果两个操作数都是非0值或者都是0值,则返回结果为0;

如果一个为0值,另一个为非0值,返回结果为1。

mysql> select 1 xor 1, 0 xor 0, 1 xor 0, 1 xor null, null xor null, 1 xor 1 xor 1;
+---------+---------+---------+------------+---------------+---------------+
| 1 xor 1 | 0 xor 0 | 1 xor 0 | 1 xor null | null xor null | 1 xor 1 xor 1 |
+---------+---------+---------+------------+---------------+---------------+
| 0 | 0 | 1 | NULL | NULL | 1 |
+---------+---------+---------+------------+---------------+---------------+
1 row in set (0.00 sec)

mysql>

位运算符

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

位或运算符(||)

位或运算的实质是将参与运算的几个数据按照对应的二进制数作为进行逻辑或运算。对应的二进制位有一个或两个为1则该位的运算结果为1,否则为0。

mysql> select 10 | 15, 9 | 4 | 2;
+---------+-----------+
| 10 | 15 | 9 | 4 | 2 |
+---------+-----------+
| 15 | 15 |
+---------+-----------+
1 row in set (0.01 sec)

mysql>

10的二进制数值为1010,15的二进制数值为1111,按位或运算之后,结果为1111,即整数15;

9的二进制数值为1001,4的二进制数值为0100,2的二进制数值为0010,按位或运算之后,结果为1111,即整数15。

位与运算符(&)

位与运算的实质是将参与运算的几个操作数按照对应的二进制数逐位进行逻辑与运算。对应的二进制位都是1或1则该位的运算结果为1,否则为0。

mysql> select 10 & 15, 9 & 4 & 2;
+---------+-----------+
| 10 & 15 | 9 & 4 & 2 |
+---------+-----------+
| 10 | 0 |
+---------+-----------+
1 row in set (0.00 sec)

mysql>

10的二进制数值为1010,15的二进制数值为1111,按位与运算之后,结果为1010,即整数10;

9的二进制数值为1001,4的二进制数值为0100,2的二进制数值为0010,按位与运算之后,结果为0000,即整数0。

位异或运算符(^)

位异或运算的实质是将参与运算的两个数据按照对应的二进制数逐位进行逻辑异或运算。

对应位的二进制数不同时,对应位的结果才为1。如果两个对应位数都为0或者都为1,则对应位的结果为0。

mysql> select 10 ^ 5, 1 ^ 2, 3 ^ 6;
+--------+-------+-------+
| 10 ^ 5 | 1 ^ 2 | 3 ^ 6 |
+--------+-------+-------+
| 15 | 3 | 5 |
+--------+-------+-------+
1 row in set (0.00 sec)

mysql>

10的二进制数值为1010,5的二进制数值为101,按位异或运算之后,结果为1111,即整数15;

1的二进制数值为1,2的二进制数值为10,按位异或运算之后,结果为11,即整数为3;

3的二进制数值为11,6的二进制数值为110,按位异或运算之后,结果为101,即整数5。

位左移运算符(<<)

位左移运算符<<使指定的二进制值的所有位都左移指定的位数。

左移指定位数之后,左边高位的数值继续左移,并不会进行丢弃,右边低位空出的位置用0补齐。

语法格式:

expr << n

n指定值expr要移位的位数。

mysql> select 1 << 2, 15 << 6;
+--------+---------+
| 1 << 2 | 15 << 6 |
+--------+---------+
| 4 | 960 |
+--------+---------+
1 row in set (0.00 sec)

mysql>

1的二进制值为1,左移两位之后变成了100,即十进制证书4

15的二进制位1111,左移6位之后变成了1111000000,即十进制整数960。

位右移运算符(>>)

位右移运算符>>使指定的二进制值的所有位都右移指定的位数。

右移指定位数之后,右边低位的数值将被移出并丢弃,左边高位空出的位置用0补齐。

语法格式为:

expr >> n

n指定值expr要移位的位数。

mysql> select 200 >> 2, 10 >> 6;
+----------+---------+
| 200 >> 2 | 10 >> 6 |
+----------+---------+
| 50 | 0 |
+----------+---------+
1 row in set (0.00 sec)

mysql>

100的二进制为11001000,右移两位之后是110010,即十进制50;

10的二进制为1010,右移6位之后是0,即二进制也是0。

位取反运算符(~)

位取反运算的实质是将参与运算的数据按照对应的二进制数逐位反转,即1取反后变为0、0取反后变为1。

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

mysql>

在逻辑运算100 & ~1中,由于位取反运算符~的级别高于位与运算符,因此先对1进行取反操作,取反之后,除了最低位为0外,其他位都是1,即1110,然后与十进制数值100进行与运算,结果为1100100,即整数100。

运算符的优先级

运算符的优先级决定了不同的运算符在表达式中计算的先后顺序。我们上面整理了这么多运算符,到底哪些运算符的优先级最高呢,下面我们就将优先级由低到高排列。

每个运算符的优先级都是不同的,一般情况下,级别高的运算符先进行计算,如果级别相同,mysql按表达式的顺序从左到右依次计算。如果无法确定优先级,我们可以使用圆括号()来改变优先级。而且这样子会使我们的sql更加优雅,且计算过程更加清晰。 

到此这篇关于mysql中的四大运算符种类汇总(20多项) 的文章就介绍到这了,更多相关mysql运算符内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

原文出处:https://blog.51cto.com/u_12386780/5499530

[!--infotagslink--]

相关文章

  • MySQL性能监控软件Nagios的安装及配置教程

    这篇文章主要介绍了MySQL性能监控软件Nagios的安装及配置教程,这里以CentOS操作系统为环境进行演示,需要的朋友可以参考下...2015-12-14
  • 详解Mysql中的JSON系列操作函数

    新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作,下面就实际体验一下...2016-08-23
  • 深入研究mysql中的varchar和limit(容易被忽略的知识)

    为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql中遇到的一些commen sense类型的问题。 ...2015-03-15
  • MySQL 字符串拆分操作(含分隔符的字符串截取)

    这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
  • mysql的3种分表方案

    一、先说一下为什么要分表:当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1...2014-05-31
  • Windows服务器MySQL中文乱码的解决方法

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
  • Centos5.5中安装Mysql5.5过程分享

    这几天在centos下装mysql,这里记录一下安装的过程,方便以后查阅Mysql5.5.37安装需要cmake,5.6版本开始都需要cmake来编译,5.5以后的版本应该也要装这个。安装cmake复制代码 代码如下: [root@local ~]# wget http://www.cm...2015-03-15
  • 用VirtualBox构建MySQL测试环境

    宿主机使用网线的时候,客户机在Bridged Adapter模式下,使用Atheros AR8131 PCI-E Gigabit Ethernet Controller上网没问题。 宿主机使用无线的时候,客户机在Bridged Adapter模式下,使用可选项里唯一一个WIFI选项,Microsoft Virtual Wifi Miniport Adapter也无法上网,故弃之。...2013-09-19
  • c#的异或运算符介绍

    这篇文章介绍了c#的异或运算符,有需要的朋友可以参考一下...2020-06-25
  • 忘记MYSQL密码的6种常用解决方法总结

    首先要声明一点,大部分情况下,修改MySQL密码是需要有mysql里的root权限的...2013-09-11
  • MySQL数据库备份还原方法

    MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:/Program Files/MySQL/MySQL Server 4.1/bin (或者直接将windows的环境变量path中添加该目录) ...2013-09-26
  • 轻松学习C#的运算符

    轻松学习C#的运算符,对C#的运算符感兴趣的朋友可以参考本篇文章,帮助大家更灵活的运用C#的运算符。...2020-06-25
  • Mysql命令大全(详细篇)

    一、连接Mysql格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql/bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密...2015-11-08
  • C#中38个常用运算符的优先级的划分和理解

    这只我自己在学C#中的一些总结,其中对于各级的划分方式、各操作符的优先级的理解并不见得正确,只是自己的看法,拿出来与大家分享...2020-06-25
  • Navicat for MySQL 11注册码\激活码汇总

    Navicat for MySQL注册码用来激活 Navicat for MySQL 软件,只要拥有 Navicat 注册码就能激活相应的 Navicat 产品。这篇文章主要介绍了Navicat for MySQL 11注册码\激活码汇总,需要的朋友可以参考下...2020-11-23
  • mysql IS NULL使用索引案例讲解

    这篇文章主要介绍了mysql IS NULL使用索引案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...2021-08-14
  • node.js如何操作MySQL数据库

    这篇文章主要介绍了node.js如何操作MySQL数据库,帮助大家更好的进行web开发,感兴趣的朋友可以了解下...2020-10-29
  • 基于PostgreSQL和mysql数据类型对比兼容

    这篇文章主要介绍了基于PostgreSQL和mysql数据类型对比兼容,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-25
  • RHEL6.5编译安装MySQL5.6.26教程

    一、准备编译环境,安装所需依赖包yum groupinstall 'Development' -y yum install openssl openssl-devel zlib zlib-devel -y yum install readline-devel pcre-devel ncurses-devel bison-devel cmake -y二、编译安...2015-10-21
  • Mysql中 show table status 获取表信息的方法

    这篇文章主要介绍了Mysql中 show table status 获取表信息的方法的相关资料,需要的朋友可以参考下...2016-03-12