Mariadb MySQL逻辑条件判断相关语句、函数使用举例介绍
MySQL逻辑条件判断相关语句、函数使用举例介绍
By:授客 QQ:1033553122
1、 IFNULL函数介绍
IFNULL(expr1, expr2)
说明:假如expr1 不为NULL,则 IFNULL() 的返回值为expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。
注意:默认结果值为两个表达式中更加“通用”的一个,顺序为STRING、 REAL或 INTEGER。
例子:
SELECT IFNULL(1, 0); # 结果为1
SELECT IFNULL(NULL, 10); # 结果为 10
SELECT IFNULL(1/0, 10); # 结果为10.000
SELECT IFNULL('string', 1.5); # 结果为 string
SELECT IFNULL('string', 5); # 结果为 string
SELECT IFNULL(1.5, 5); # 结果为 1.5
2、 IF函数
IF(expr1, expr2, expr3)
如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3。
例子:
SELECT IF(1>2, 2, 3); # 结果返回 3
SELECT IF(1<2, 'yes', 'no'); # 结果返回yes
SELECT IF(NULL, 1, 3); # 结果返回3
SELECT IF(0.1,1,0); # 结果返回1
SELECT IF(0.1<>0,1,0); # 结果返回1
注意:IF(0.1)返回0,因为0.1被变换到整数值, 导致测试IF(0)
3、 CASE WHEH的使用
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
说明:condition条件为真,则返回result。如果没有匹配的result值,那么结果在ELSE后的result被返回。如果没有ELSE部分,那么NULL被返回。
例子:
SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END; # 结果返回 true
SELECT CASE WHEN 5 > 9 THEN "5 > 9:fasle" WHEN 5 > 6 THEN "5 > 6:fasle" WHEN 5 > 4 THEN "5 > 4:true" ELSE "false" END; # 结果返回 5 > 4:true
4、 IF…ELSE的使用
DELIMITER //
CREATE PROCEDURE sp_test(
flag INT
)
BEGIN
DECLARE num INT DEFAULT 0;
SET num = 1;
IF flag = 3
THEN
SET num = 2;
SELECT num;
ELSE
SET num = 3;
SELECT num;
END IF;
END;
//
DELIMITER ;
CALL sp_test(5); # 结果输出值: 3
类似的有IF…ENDIF;
5、 IF…ELSEIF…ELSE的使用
DELIMITER //
CREATE PROCEDURE sp_test(
flag INT
)
BEGIN
DECLARE num INT DEFAULT 0;
SET num = 1;
IF flag = 3
THEN
SET num = 2;
SELECT num;
ELSEIF flag = 0
THEN
SET num = 3;
SELECT num;
ELSE
SET num = 4;
SELECT num;
END IF;
END;
//
DELIMITER ;

注:前后记得用DELIMITER //
……//
DELIMITER;
不然直接运行以上创建存储过程的语句可能会报错,如下:
Query: SET
num = 1
Error Code:
1193
Unknown system variable 'num'
Mariadb MySQL逻辑条件判断相关语句、函数使用举例介绍的更多相关文章
- DDD实战进阶第一波(八):开发一般业务的大健康行业直销系统(业务逻辑条件判断最佳实践)
这篇文章其实是大健康行业直销系统的番外篇,主要给大家讲讲如何在领域逻辑中,有效的处理业务逻辑条件判断的最佳实践问题. 大家都知道,聚合根.实体和值对象这些领域对象都自身处理自己的业务逻辑.在业务处理过 ...
- 不使用比较和条件判断实现min函数的一种方法
不使用比较和条件判断实现min函数,参数为两个32位无符号int. 面试的时候遇到的题目,感觉很有意思. 搜了一下多数现有的解法都是仅有两种限制之一,即要么仅要求不能使用比较,要么仅要求不能使用条件判 ...
- SQL利用Case When Then多条件判断SQL 语句
http://www.cnblogs.com/kevin2013/archive/2010/07/02/1769682.html SQL利用Case When Then多条件判断SQL ,用于sele ...
- mysql中有条件的插入语句
今天在参加笔试的过程中,看到一道题,大概意思就是说,当满足了条件就执行插入语句,当时就蒙了,之前从来都没有考虑过满足条件才插入的情况,所以一直都是这样写的 insert into table_name ...
- shell编程(三)之条件判断(if语句)
练习:写一个脚本判断当前系统上是否有用户的默认shell为bash: 如果有,就显示有多少个这类用户:否则,就显示没有这类用户: #!/bin/bash # grep '\<bash$' /et ...
- MySQL的简单条件判断语句
在MySQL中条件判断语句常用于数据转换,基于现有数据创建新的数据列,使用场景还是比较多. 基础样式: CASE WHEN`条件`THEN`结果` ELSE`默认结果` END 在同一条判断语句中可以 ...
- shell条件判断与流程控制
一 条件判断式语句 1.按文件类型进行判断 测试类型 作用 -b 文件 判断文件是否存在,并且是否为块设备文件(是块设备文件为真) -c 文件 判断文件是否存在,并且是否为字符设备文件(是字符设备设备 ...
- Ansible 小手册系列 十四(条件判断和循环)
条件判断 When 语句 在when 后面使用Jinja2 表达式,结果为True则执行任务. tasks: - name: "shut down Debian flavored syste ...
- MySQL数据库(一)—— 数据库介绍、MySQL安装、基础SQL语句
数据库介绍.MySQL安装.基础SQL语句 一.数据库介绍 1.什么是数据库 数据库即存储数据的仓库 2.为什么要用数据库 (1)用文件存储是和硬盘打交道,是IO操作,所以有效率问题 (2)管理不方便 ...
随机推荐
- 08-02 Java 代码块,代码块执行的先后顺序问题
代码块 /* 代码块:在Java中,使用{}括起来的代码被称为代码块. 根据其位置和声明的不同,可以分为 局部代码块:局部位置,用于限定变量的生命周期. 构造代码块:在类中的成员位置,用{}括起来的代 ...
- web3调用call()方法获取不到返回值
一.web3的call()获取不到返回值问题和解决方法 在彩票小合约中,遇到一个问题:合约中 有两个方法 第一个返回一个账户地址,没有使用到当前方法调用者信息: 第二个使用到了当前方法调用者信息 在w ...
- Feign status 400 reading 问题分析
背景:项目使用的是微服务架构,采用springboot来开发,所有的服务都是基于内嵌tomcat来运行 问题:项目部署到测试环境之后,偶尔在后台日志会看到这样的日志:Feign status 400 ...
- 计算机网络 之 TCP和UDP的端口号解析
前言:今天了解一下tcp和udp报文的端口.发现一直以来都只是知道端口用于区分同一IP的服务器的不同服务,已经端口的大小.在查找traceroute的资料的时候,才了解到一些之前没注意到的东西. (一 ...
- JAVA面试精选【Java基础第三部分】
上一篇,我们给出了大概35个题目,都是基础知识,有童鞋反映题目过时了,其实不然,这些是基础中的基础,但是也是必不可少的,面试题目中还是有一些基础题目的,我们本着先易后难的原则,逐渐给出不同级别的题目, ...
- php -- 数学函数
----- 016-math.php ----- <!DOCTYPE html> <html> <head> <meta http-equiv="c ...
- 【胡思乱想】JNI与线程池的维护
JNI中,C/C++代码里创建的资源不由Java GC处理,故这里的资源必须由C/C++代码明确释放.在JNI中,C/C++回调Java的方法是调用一个CallXXMethod函数来实现的,如果回调的 ...
- 人工智能日常应用举例-nlp+视觉(听说看)
- Array.prototype.map()和Array.prototypefilter()
ES5 => 筛选功能 Array.prototypefilter(): 代码: var words = ['spray', 'limit', 'elite', 'exuberant', 'd ...
- 7.C#知识点:抽象类和接口浅谈
知识点目录==========>传送门 首先介绍什么是抽象类? 抽象类用关键字abstract修饰的类就是叫抽象类,抽象类天生的作用就是被继承的,所以不能实例化,只能被继承.而且 abstrac ...