MySQL函数学习(五)-----流程控制函数

打印 上一主题 下一主题

主题 518|帖子 518|积分 1554

# md函数笔记五

注:笔记旨在记录

目录

五、MySQL 流程控制函数

\函 数 名 称作  用完 成1IF条件判断勾2IFNULL判空判断勾3CASE求数量勾0.

0.1 num表:
  1. CREATE TABLE `anyot`.`Untitled`  (
  2. `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  3. `rand_int_num` int NULL DEFAULT NULL,
  4. `rand_decimal_num` decimal(65, 2) NULL DEFAULT NULL,
  5. `rand_string_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL
  6. ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
复制代码

1. IF() -- 条件判断

1.1. 函数:


  • IF(expr1,expr2,expr3) : expr1为判断条件,符合则返回expr2,否则expr3
1.2. sql示例:
  1. SELECT rand_int_num,IF(rand_int_num < 15,"√","×") from num
复制代码

2. IFNULL() --  判空判断

2.1. 函数:


  • IFNULL(expr1,expr2) :expr1为判断的值或字段,为空则返回expr2
2.2. sql示例:
  1. SELECT rand_int_num,IFNULL(rand_int_num,"√") from num
复制代码

3. CASE -- 求总数

3.1. 函数:

注: case结合when,else,end使用;其中else可以省略,但end一定要加。


  • 写法一:
    1.   CASE case_value
    2.       WHEN when_value THEN statement_list
    3.       WHEN ...
    4.       ELSE statement_list
    5.   END;
    复制代码
  • 写法二:
    1.   CASE
    2.       WHEN expr1 THEN statement_list
    3.       WHEN ...
    4.       ELSE statement_list
    5.   END;
    复制代码
3.2. sql示例:


  • 写法一:
    1.   SELECT rand_int_num,
    2.   CASE rand_int_num
    3.       WHEN 14 THEN " == 14"
    4.       WHEN 44 THEN " == 44"
    5.       ELSE " != 14"
    6.   END as is14
    7.   from num
    复制代码


  • 写法二:
    1.   SELECT rand_int_num,
    2.   CASE WHEN rand_int_num = 14 THEN " == 14"
    3.       ELSE " != 14"
    4.   END as is14 ,rand_string_num,
    5.   CASE WHEN rand_string_num = "a99" THEN " == a99"
    6.       ELSE " != a99"
    7.   END as isa99 from num
    复制代码
  1.     SELECT CASE
  2.         WHEN WEEKDAY(NOW())=0 THEN '星期一'
  3.         WHEN WEEKDAY(NOW())=1 THEN '星期二'  
  4.         WHEN WEEKDAY(NOW())=2 THEN '星期三'
  5.         WHEN WEEKDAY(NOW())=3 THEN '星期四'
  6.         WHEN WEEKDAY(NOW())=4 THEN '星期五'
  7.         WHEN WEEKDAY(NOW())=5 THEN '星期六'
  8.         WHEN WEEKDAY(NOW())=6 THEN '星期天'
  9.     END AS COLUMN1,NOW(),WEEKDAY(NOW()),DAYNAME(NOW());
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天津储鑫盛钢材现货供应商

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表