zoukankan      html  css  js  c++  java
  • MySQL内置函数-单行函数(流程控制函数)

    if函数

    mysql> select if(1>2,'yes','no');
    +--------------------+
    | if(1>2,'yes','no') |
    +--------------------+
    | no                 |
    +--------------------+
    1 row in set (0.00 sec)
    mysql> select user,if(user='root','管理员','普通用户') from mysql.user;
    +------------------+--------------------------------------------+
    | user             | if(user='root','管理员','普通用户')        |
    +------------------+--------------------------------------------+
    | test             | 普通用户                                   |
    | test1            | 普通用户                                   |
    | root             | 管理员                                     |
    | mysql.infoschema | 普通用户                                   |
    | mysql.session    | 普通用户                                   |
    | mysql.sys        | 普通用户                                   |
    | root             | 管理员                                     |
    | test             | 普通用户                                   |
    +------------------+--------------------------------------------+
    8 rows in set (0.01 sec)

    case函数

    等值判断

    mysql> select * from t2;
    +------+------+
    | id   | comm |
    +------+------+
    |    1 | NULL |
    |    2 |   15 |
    |    3 |   18 |
    |    4 |   25 |
    |    5 | NULL |
    +------+------+
    5 rows in set (0.00 sec)
    
    mysql> select case comm when 15 then 'low' when 18 then 'middle' else 'high' end from t2 where comm is not null;
    +--------------------------------------------------------------------+
    | case comm when 15 then 'low' when 18 then 'middle' else 'high' end |
    +--------------------------------------------------------------------+
    | low                                                                |
    | middle                                                             |
    | high                                                               |
    +--------------------------------------------------------------------+
    3 rows in set (0.00 sec)

    表达式

    mysql> select * from t2;
    +------+------+
    | id   | comm |
    +------+------+
    |    1 | NULL |
    |    2 |   15 |
    |    3 |   18 |
    |    4 |   25 |
    |    5 | NULL |
    +------+------+
    5 rows in set (0.00 sec)
    
    ## 控制不会参与比较,需要使用coalesce函数或ifnull函数进行转换才可以
    mysql> select id,case when comm <10 then "low" when 10<comm<20 then "middle" else  'high' end from t2;
    +------+------------------------------------------------------------------------------+
    | id   | case when comm <10 then "low" when 10<comm<20 then "middle" else  'high' end |
    +------+------------------------------------------------------------------------------+
    |    1 | high                                                                         |
    |    2 | middle                                                                       |
    |    3 | middle                                                                       |
    |    4 | middle                                                                       |
    |    5 | high                                                                         |
    +------+------------------------------------------------------------------------------+
    5 rows in set (0.00 sec)
    mysql> update t2 set comm =5 where id=1;
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> update t2 set comm =3 where id=5;
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> select id,case when comm <10 then "low" when 10<comm<20 then "middle" else  'high' end from t2;
    +------+------------------------------------------------------------------------------+
    | id   | case when comm <10 then "low" when 10<comm<20 then "middle" else  'high' end |
    +------+------------------------------------------------------------------------------+
    |    1 | low                                                                          |
    |    2 | middle                                                                       |
    |    3 | middle                                                                       |
    |    4 | middle                                                                       |
    |    5 | low                                                                          |
    +------+------------------------------------------------------------------------------+
    5 rows in set (0.00 sec)

    ifnull函数 判断值是否为0

    mysql> select ifnull(comm,0) from t2;
    +----------------+
    | ifnull(comm,0) |
    +----------------+
    |              0 |
    |             15 |
    |             18 |
    |             25 |
    |              0 |
    +----------------+
    5 rows in set (0.01 sec)
  • 相关阅读:
    evernote100个做笔记的好方法
    平衡二叉树的调整模版
    晨间日记的奇迹
    hdu 2952 Counting Sheep
    hdu 1535 Invitation Cards
    poj 3259 Wormholes(spfa)
    poj 2263 Heavy Cargo(floyd)
    poj 3268 Silver Cow Party(SPFA)
    hdu 1690 Bus System
    hdu 3631 Shortest Path(Floyd)
  • 原文地址:https://www.cnblogs.com/zh-dream/p/13084804.html
Copyright © 2011-2022 走看看