mysql中的运算符

一,算术运算符

  

mysql算术运算符
运算符作用
+ 
- 
* 
/,div除法,返回商
%,mod除法,返回余数

 例子:

mysql> select 1+0.3,1-0.3,1*0.3,5/2,5%2;
+-------+-------+-------+--------+------+
| 1+0.3 | 1-0.3 | 1*0.3 | 5/2    | 5%2  |
+-------+-------+-------+--------+------+
|   1.3 |   0.7 |   0.3 | 2.5000 |    1 |
+-------+-------+-------+--------+------+
1 row in set (0.03 sec)

mysql> select 2/0;
+------+
| 2/0  |
+------+
| NULL |
+------+
1 row in set, 1 warning (0.00 sec)

 
当除数为0时,直接返回了空


二,比较运算符

    比较运算符,在结果为真的时候返回1,假的时候返回0


mysql运算符
运算符作用
= 
<>或!=不等于
<=>null安全的等于
< 
<= 
> 
>= 
between在指定范围内
in在指定集合内
is null为空
is not null 
like通配符匹配
regexp或rlike正则表达式匹配


     注:=,<>不能用于null比较,<=>可以比较null

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

      between 格式 a between min and max

mysql> select 10 between 9 and 20,9 between 10 and 20;
+---------------------+---------------------+
| 10 between 9 and 20 | 9 between 10 and 20 |
+---------------------+---------------------+
|                   1 |                   0 |
+---------------------+---------------------+
1 row in set (0.00 sec)

    in 格式 a in (value1,value2,...)

        

mysql> select 'a' in ('a','b','c'),'a' in ('b','c');
+----------------------+------------------+
| 'a' in ('a','b','c') | 'a' in ('b','c') |
+----------------------+------------------+
|                    1 |                0 |
+----------------------+------------------+
1 row in set (0.00 sec)

     like 格式  a like %abc% 表示a中含有字符串abc

mysql> select 'abc' like '%b','abc' like '%b%','abc' like 'b%';
+-----------------+------------------+-----------------+
| 'abc' like '%b' | 'abc' like '%b%' | 'abc' like 'b%' |
+-----------------+------------------+-----------------+
|               0 |                1 |               0 |
+-----------------+------------------+-----------------+
1 row in set (0.00 sec)

     regexp 格式 str regexp str_part,当str字符串中含有str_part时,返回1,否则返回0

mysql> select 'abcd' regexp 'ab','abcd' regexp 'ac';
+--------------------+--------------------+
| 'abcd' regexp 'ab' | 'abcd' regexp 'ac' |
+--------------------+--------------------+
|                  1 |                  0 |
+--------------------+--------------------+
1 row in set (0.00 sec)

三,逻辑运算符

mysql逻辑运算符
运算符作用
not或!
and 或&&
or 或 ||
xor异或


   xor表示逻辑异或,当任意一个操作数为null时,返回值为null ,对于非null的操作数,如果两个的逻辑真假值相异,则返回结果1,否则返回0

 

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

四,位运算符

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

   

mysql位运算符
运算符作用
&位与(位and)
|位或(位or)
^位异或(位xor)
~位取反
>>位右移
<<位左移


     这边我们就对位右移举个例子,其他都类似

      如:100>>3 ,100的二进制0001100100右移3位,左边补0,就是0000001100,转换为十进制就是12

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


五,运算符的优先级

运算符优先级
优先级顺序运算符
1:=
2|| ,or ,xor
3&& ,and
4not
5between ,case ,when ,then ,else
6= ,<=> ,>= ,> ,< ,<> ,!= ,is ,like , regexp ,in
7|
8&
9<< , >>
10- , +
11* ,/ ,div ,% ,mod
12^
13-(一元减号) , ~ (一元比特反转)
14

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值