# md函数笔记五
注:笔记旨在记录
目录
五、MySQL 流程控制函数
\函 数 名 称作 用完 成1IF条件判断勾2IFNULL判空判断勾3CASE求数量勾0.表
0.1 num表:
- CREATE TABLE `anyot`.`Untitled` (
- `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
- `rand_int_num` int NULL DEFAULT NULL,
- `rand_decimal_num` decimal(65, 2) NULL DEFAULT NULL,
- `rand_string_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL
- ) 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示例:
- SELECT rand_int_num,IF(rand_int_num < 15,"√","×") from num
复制代码
2. IFNULL() -- 判空判断
2.1. 函数:
- IFNULL(expr1,expr2) :expr1为判断的值或字段,为空则返回expr2
2.2. sql示例:
- SELECT rand_int_num,IFNULL(rand_int_num,"√") from num
复制代码
3. CASE -- 求总数
3.1. 函数:
注: case结合when,else,end使用;其中else可以省略,但end一定要加。
- 写法一:
- CASE case_value
- WHEN when_value THEN statement_list
- WHEN ...
- ELSE statement_list
- END;
复制代码 - 写法二:
- CASE
- WHEN expr1 THEN statement_list
- WHEN ...
- ELSE statement_list
- END;
复制代码 3.2. sql示例:
- 写法一:
- SELECT rand_int_num,
- CASE rand_int_num
- WHEN 14 THEN " == 14"
- WHEN 44 THEN " == 44"
- ELSE " != 14"
- END as is14
- from num
复制代码

- 写法二:
- SELECT rand_int_num,
- CASE WHEN rand_int_num = 14 THEN " == 14"
- ELSE " != 14"
- END as is14 ,rand_string_num,
- CASE WHEN rand_string_num = "a99" THEN " == a99"
- ELSE " != a99"
- END as isa99 from num
复制代码
 - SELECT CASE
- WHEN WEEKDAY(NOW())=0 THEN '星期一'
- WHEN WEEKDAY(NOW())=1 THEN '星期二'
- WHEN WEEKDAY(NOW())=2 THEN '星期三'
- WHEN WEEKDAY(NOW())=3 THEN '星期四'
- WHEN WEEKDAY(NOW())=4 THEN '星期五'
- WHEN WEEKDAY(NOW())=5 THEN '星期六'
- WHEN WEEKDAY(NOW())=6 THEN '星期天'
- END AS COLUMN1,NOW(),WEEKDAY(NOW()),DAYNAME(NOW());
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |