MySQL 流程控制

Posted 知其黑、受其白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 流程控制相关的知识,希望对你有一定的参考价值。

阅读目录

mysql流程控制 IF()、IFNULL()、NULLIF()、ISNULL()函数的使用

MySQL IF() 函数的使用

SELECT IF(TRUE,'A','B');    -- 输出结果:A
SELECT IF(FALSE,'A','B');   -- 输出结果:B
SELECT
	id,
title,
IF (
	url IS NULL,
	'没奖金呵呵',
	'有奖金嘻嘻'
) AS 链接
FROM
	video;


mysql> select if(true,'hello','world');
+--------------------------+
| if(true,'hello','world') |
+--------------------------+
| hello                    |
+--------------------------+
1 row in set (0.00 sec)

mysql> select if(false,'hello','world');
+---------------------------+
| if(false,'hello','world') |
+---------------------------+
| world                     |
+---------------------------+
1 row in set (0.00 sec)

分支结构之 IF

IF 表达式1 THEN 操作1
[ELSEIF 表达式2 THEN 操作2]……
[ELSE 操作N]
END IF

IFNULL() 函数的使用

SELECT IFNULL(NULL,'B');    -- 输出结果:B
SELECT IFNULL('HELLO','B'); -- 输出结果:HELLO

NULLIF() 函数的使用

SELECT NULLIF('A','A');     -- 输出结果:null
SELECT NULLIF('A','B');     -- 输出结果:A

ISNULL() 函数的使用

SELECT ISNULL(NULL);        -- 输出结果:1
SELECT ISNULL('HELLO');     -- 输出结果:0

case 函数

CASE 表示函数开始,END 表示函数结束。
如果 condition1 成立,则返回 result1,
如果 condition2 成立,则返回 result2,
当全部不成立则返回 result,而当有一个成立之后,后面的就不执行了。

CASE expression
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END

传参的写法:

不传参的写法

实操案例

准备数据

-- 创建订单表
CREATE TABLE orders (
	oid INT PRIMARY KEY,
	-- 订单id
	price DOUBLE,
	-- 订单价格
	payType INT -- 支付类型(1:微信支付 2:支付宝支付 3:银行卡支付 4:其他)
);

insert into orders values(1,1200,1);
insert into orders values(2,1000,2);
insert into orders values(3,200,3);
insert into orders values(4,3000,1);
insert into orders values(5,1500,2);

示例 1

select 
*,
case
when payType=1 then "微信支付"
when payType=2 then "支付宝支付"
when payType=3 then "银行卡支付"
else "其他支付方式"
end as payTypeStr
from orders;

示例 2

select 
*,
case payType
when 1 then "微信支付"
when 2 then "支付宝支付"
when 3 then "银行卡支付"
else "其他支付方式"
end as payTypeStr
from orders;

上述分别是用了等值判断和值的映射去实现,一般我更喜欢使用第一种,因为有时候还可以范围运算。

以上是关于MySQL 流程控制的主要内容,如果未能解决你的问题,请参考以下文章

java的流程控制结构

mysql之流程控制语句

Mysql 流程控制

MySQL 流程控制

MySQL 流程控制

MySQL 流程控制