运算判断MySQL学习笔记11:运算符 运算判断

在写这篇文章之前,xxx已经写过了几篇关于改运算判断主题的文章,想要了解的朋友可以去翻一下之前的文章

    Mysql可以通过运算符来对表中数据行进运算,比如通过出生日期求龄年等

    运算符包含四类,分别是:算数运算符、比拟运算符、逻辑运算符和位运算符

 

    

算数运算符

    

加、减、乘运算

mysql> select a,a+5,a*2 from t1;
+------+------+------+
| a    | a+5  | a*2  |
+------+------+------+
|   24 |   29 |   48 |
+------+------+------+
1 row in set (0.00 sec)
这里的原值为24,前面也可以用使混合运算,只要需注意优先级便可

 

    

除法和取模运算

mysql> select a,a/3,a div 3,a%5,mod(a,5) from t1;
+------+--------+---------+------+----------+
| a    | a/3    | a div 3 | a%5  | mod(a,5) |
+------+--------+---------+------+----------+
|   24 | 8.0000 |       8 |    4 |        4 |
+------+--------+---------+------+----------+
1 row in set (0.00 sec)
此处 / 和 div 代表整除,% 和 mod 代表取模

    要注意的是,如果被除数为0,那么盘算结果是NULL

 

    

比拟运算符

    

值数比拟

mysql> select a,a=24,a<12,a>40,a>=24,a<=24,a!=24,a<>24,a<=>24 from t1;
+------+------+------+------+-------+-------+-------+-------+--------+
| a    | a=24 | a<12 | a>40 | a>=24 | a<=24 | a!=24 | a<>24 | a<=>24 |
+------+------+------+------+-------+-------+-------+-------+--------+
|   24 |    1 |    0 |    0 |     1 |     1 |     0 |     0 |      1 |
+------+------+------+------+-------+-------+-------+-------+--------+
1 row in set (0.00 sec)
这里的1代表真,0代表假,要需明说的是<>和<=>

    <>代表不即是,等同于!=

    <=>代表即是,等同于=

    此外,即是和不即是不仅可以比拟值数,还能比拟字符串

 

    

字符串比拟

mysql> select a,a='24','ha'<>'ha','xa'='xa','b'!='b' from t1;
+------+--------+------------+-----------+----------+
| a    | a='24' | 'ha'<>'ha' | 'xa'='xa' | 'b'!='b' |
+------+--------+------------+-----------+----------+
|   24 |      1 |          0 |         1 |        0 |
+------+--------+------------+-----------+----------+
1 row in set (0.00 sec)
 

    

is null 和is not null

mysql> select a,a is null, a is not null from t1;
+------+-----------+---------------+
| a    | a is null | a is not null |
+------+-----------+---------------+
|   24 |         0 |             1 |
+------+-----------+---------------+
1 row in set (0.00 sec)
这里可以判断否是为空,NULL也可以跟NULL比拟

 

    

between and和not between and

    每日一道理
坚持的昨天叫立足,坚持的今天叫进取,坚持的明天叫成功。
mysql> select a,a between 15 and 30,a not between 15 and 30 from t1;
+------+---------------------+-------------------------+
| a    | a between 15 and 30 | a not between 15 and 30 |
+------+---------------------+-------------------------+
|   24 |                   1 |                       0 |
+------+---------------------+-------------------------+
1 row in set (0.00 sec)
between and 和not between and可以判断值数否是在某一区间内

 

    

in

mysql> select a,a in(1,2,23),a in(24,12,22) from t1;
+------+--------------+----------------+
| a    | a in(1,2,23) | a in(24,12,22) |
+------+--------------+----------------+
|   24 |            0 |              1 |
+------+--------------+----------------+
1 row in set (0.00 sec)
判断操作数否是在某一合集内

 

    

like

mysql> select s,s like 'beijing',s like 'b%g',s like 'bei____',s like '%jing' from t2;
+---------+------------------+--------------+------------------+----------------+
| s       | s like 'beijing' | s like 'b%g' | s like 'bei____' | s like '%jing' |
+---------+------------------+--------------+------------------+----------------+
| beijing |                1 |            1 |                1 |              1 |
+---------+------------------+--------------+------------------+----------------+
1 row in set (0.00 sec)
like可以用来匹配字符串,_代表单个字符,%代表多个字符

 

    

逻辑运算符

    

与运算

mysql> select 2&&2,2&&null,2 and 3,2 and 2;
+------+---------+---------+---------+
| 2&&2 | 2&&null | 2 and 3 | 2 and 2 |
+------+---------+---------+---------+
|    1 |    NULL |       1 |       1 |
+------+---------+---------+---------+
1 row in set (0.00 sec)
这里&&和and意思一样

 

    

或运算

mysql> select 2||2,2||null,2 or 3,2 or 0;
+------+---------+--------+--------+
| 2||2 | 2||null | 2 or 3 | 2 or 0 |
+------+---------+--------+--------+
|    1 |       1 |      1 |      1 |
+------+---------+--------+--------+
1 row in set (0.00 sec)
这里||和or的意思一样

 

    

非运算

mysql> select !1,!2,!null;
+----+----+-------+
| !1 | !2 | !null |
+----+----+-------+
|  0 |  0 |  NULL |
+----+----+-------+
1 row in set (0.00 sec)
此外还有位运算,现在还没用到,等用到的时候再补上

 

 

 

文章结束给大家分享下程序员的一些笑话语录: Bphone之你们聊,我先走了!移动说:我在phone前加o,我叫o缝;苹果说:我在phone前i,我是i缝;微软说:我在phone前加w,我叫w缝;三星说:你们聊,我先走了!
将来王建宙写回忆录的时候,一定要有一句“常小兵为中国移动的发展做出了不可磨灭的贡献”。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值