当前位置:网站首页>MySQL 流程控制
MySQL 流程控制
2022-08-03 05:39:00 【知其黑、受其白】
阅读目录
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;
上述分别是用了等值判断和值的映射去实现,一般我更喜欢使用第一种,因为有时候还可以范围运算。
边栏推荐
- Detailed explanation of AutoInt network and pytorch reproduction
- 关于任命韩文弢博士代理NOI科学委员会主席的公告
- torch.nn.modules.activation.ReLU is not a Module subclass
- cookie和session区别
- Content type ‘applicationx-www-form-urlencoded;charset=UTF-8‘ not supported“【已解决】
- pyspark --- 空串替换为None
- 【OpenStack云平台】搭建openstack云平台
- docker-compose部署mysql
- 【云原生 · Kubernetes】Kubernetes简介及基本组件
- IFM network detailed explanation and torch reproduction
猜你喜欢
Composer require 报错 Installation failed, reverting ./composer.json and ./composer.lock to their ...
【云原生 · Kubernetes】Kubernetes简介及基本组件
Getting started with el-tabs (tab bar)
PostMan测试接口-----上传文件、导出excel
Chrome插件开发入门
PCB 多层板为什么都是偶数层?
Scala 基础 (三):运算符和流程控制
【EA Price strategy OC1】以实时价格为依据的EA,首月翻仓!】
AR路由器如何配置Portal认证(二层网络)
置顶文章-
随机推荐
编程语言有什么
torch.nn.modules.activation.ReLU is not a Module subclass
el-tree设置利用setCheckedNodessetCheckedKeys默认勾选节点,以及通过setChecked新增勾选指定节点
mysql 时间字段默认设置为当前时间
一文读懂PCB品质体系认证
VO、DTO、DO、POJO的区别和概念
Nacos单机模式的安装与启动
MySQL中,对结果或条件进行字符串拼接
MySQL 数据库基础知识(系统化一篇入门)
Flink的Exactly-Once、状态机制、watermark机制
我国有关信息方面的法律法规
MySQL的安装(详细教程)
SQL——左连接(Left join)、右连接(Right join)、内连接(Inner join)
el-tabs(标签栏)的入门学习
MySql的安装配置超详细教程与简单的建库建表方法
信息学奥赛一本通T1449:魔板
【云原生 · Kubernetes】Kubernetes基础环境搭建
ES6中 async 函数、await表达式 的基本用法
MySQL的on duplicate key update 的使用
【Markdown 数学公式】markdown常用公式写法