MYSQL8控制流函数
控制流函数
https://www.runoob.com/mysql/mysql-functions.html
IF逻辑判断语句
IFNULL(字段,指定值)-NULL作为指定值
-- 如果comm的值为null,则当作0,不为null,则还是原来的值
ifnull(comm,0)
NULLIF()比较字符串是否相等
比较两个字符串,如果字符串 expr1 与 expr2 相等 返回 NULL,否则返回 expr1
-- 如果值1为NULL,将其替换为apple
SELECT NULLIF(值1, 'apple') FROM t;
ISNULL()–判断表达式是否为NULL
CASE WHEN语句
多选其一。
-- case when语句
SELECT CASE
5
WHEN 1 THEN '你好'
WHEN 2 THEN 'hello'
WHEN 5 THEN '正确'
ELSE '其他'
END AS info;
-- case when语句
-- 执行第一条正确的语句。
SELECT CASE
WHEN 2 > 1 THEN '你好'
WHEN 2 < 1 THEN 'hello'
WHEN 3 > 2 THEN '正确'
ELSE '其他'
END AS info;
示例:
数据准备
USE mydb1;
-- 创建orders订单表
-- oid 订单ID
-- price 订单价格
-- payType 支付类型(1:微信,2:支付宝,3:银行卡,4:其他)
CREATE TABLE mydb1.orders(
oid INT primary key COMMENT '订单id',
price double COMMENT '订单价格',
payType int COMMENT '支付类型'
);
-- 插入数据
INSERT INTO mydb1.orders
VALUES(1, 1200, 1),
(2, 1000, 2),
(3, 200, 3),
(4, 3000, 1),
(5, 1500, 2);
查询示范
SELECT *,
CASE
payType
WHEN 1 THEN '微信支付'
WHEN 2 THEN '支付宝'
WHEN 2 THEN '银行卡'
ELSE '其他支付'
END AS payTypeStr
FROM mydb1.orders;