mysql 控制器流程函数

Mysql中有四种控制流程函数

Name Description
CASE Case operator
IF() If/else construct
IFNULL() Null if/else construct
NULLIF()
Return NULL if expr1 = expr2

1、case流程

CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END 

CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 

第一种情况:当value = compare_value时 返回result

第二种情况:当condition 为真时返回result

如果没有匹配项,将返回else后面的result,如果没有else语句将返回null

eg:

mysql> SELECT CASE 1 WHEN 1 THEN ‘one‘
    ->     WHEN 2 THEN ‘two‘ ELSE ‘more‘ END;
        -> ‘one‘
mysql> SELECT CASE WHEN 1>0 THEN ‘true‘ ELSE ‘false‘ END;
        -> ‘true‘
mysql> SELECT CASE BINARY ‘B‘
    ->     WHEN ‘a‘ THEN 1 WHEN ‘b‘ THEN 2 END;
        -> NULL

2、if流程 -- if(expr1,expr2,expr3)

如果 expr1 为真,将返回expr2,否则返回expr3

mysql> SELECT IF(1>2,2,3);
        -> 3
mysql> SELECT IF(1<2,‘yes‘,‘no‘);
        -> ‘yes‘
mysql> SELECT IF(STRCMP(‘test‘,‘test1‘),‘no‘,‘yes‘);
        -> ‘no‘

3、ifnull(expr1,expr2)流程 --- 如果expr1 不为NULL,返回expr1,否则返回expr2

mysql> SELECT IFNULL(1,0);
        -> 1
mysql> SELECT IFNULL(NULL,10);
        -> 10
mysql> SELECT IFNULL(1/0,10);
        -> 10
mysql> SELECT IFNULL(1/0,‘yes‘);
        -> ‘yes‘

4、nullif(expr1,expr2)流程 --- 如果expr1 = expr2则返回null,否则返回expr1;等同于 case when expr1 = expr2 then null else expr1 end

mysql> SELECT NULLIF(1,1);
        -> NULL
mysql> SELECT NULLIF(1,2);
        -> 1
时间: 2024-08-10 22:42:46

mysql 控制器流程函数的相关文章

mysql控制流程函数

1.case语句 select case 2 when 1 then '男' when 2 then '女' else 'xoap' end as result; 2.if语句 select if(1>2,'yes','no'); 3.ifnull 如果不是空,返回第一个 select ifnull (1,0); 4.nullif 如果 erxp1=erxp2 返回为空 不相等,返回exp1

MySQL数据库学习笔记(四)----MySQL聚合函数、控制流程函数(含navicat软件的介绍)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4030506.html 联系方式:[email protected] [正文] 一.navicat的引入:(第三方可视化的客户端,方便MySQL数据库的管理和维护) NavicatTM是一套快速.可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开

mysql 开发基础系列7 流程函数与其它函数

一.流程函数 -- 创建表来介绍 CREATE TABLE salary (userid INT,salary DECIMAL(9,2)); INSERT INTO salary VALUES(1,1000),(2,2000), (3,3000),(4,4000),(5,5000), (1,NULL); SELECT * FROM salary 1. if(value,t,f)  超过2000的用high,否则用low SELECT IF(salary>2000 ,'high','low') F

mysql内置函数

mysql数据库中提供了很丰富的函数.mysql函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数.格式化函数等.通过这些函数,可以简化用户的操作. 简单介绍几类函数的使用范围: 数学函数:这类函数只要用于处理数字.这类函数包括绝对值函数.正弦函数.余弦函数.获取随机数函数等. 字符串函数:这类函数主要用于处理字符串.其中包括字符串连接函数.字符串比较函数.将字符串的字母变成小写或大写字母的函数.获取子串的函数等. 日期和时间函数:这类函数主要用于处理日期和时间.

mysql笔记4_函数

常用函数: concat 连接函数  Lower 转小写  upper 转大写  Length 长度 substr  子串  now 当前时间  Year 当前年份... 流程函数: ifnull(column,result1,result2) 判定字段为空则返回result2,不为空则result1. case...when...then...else...end 分支语句. 聚合函数: AVG 平均值  sum 求和  MAX 最大值  MIN 最小值  count[distinct] 统计

MySQL优化之——函数

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46561659 数学函数 1.求余函数MOD(X,Y) MOD(X,Y)返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,他返回除法运算后的精确余数 SELECT MOD(31,8) 2.四舍五入函数TRUNCATE(X,Y) TRUNCATE(X,Y)返回被舍去至小数点后y位的数字x.若y的值为0,则结果不带有小数点或不带有小数部分. 若y设为负数,则截去(归零)x

mysql 执行流程

mysql 执行流程 我们可以人为的把mysql 的主要功能分为如下模块. 1.初始化模块 mysql启动的时候执行初始化工作,如读取配置文件,分配一些全局变量(sql_model,catch buffer),载入控制表, 内存分配之类的,这个模块执行完之后, 初始化模块执行完之后就把控制器交给 链接管理器 2.执行流程 一个用户连接进来之后 先会跟连接管理模块打交道, 然后连接管理模块会通知线程管理模块分配一条线程进入 用户模块 对这个用户进行验证, 当 用户模块 执行完之后,服务端就可以接受

数据库学习笔记4---MySQL聚合函数、控制流程函数(含navicat软件的介绍)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4030506.html [正文] 一.navicat的引入:(第三方可视化的客户端,方便MySQL数据库的管理和维护) NavicatTM是一套快速.可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开发人员及中小企业的需要.Navicat 是以直

MYSQL存储过程,函数,光标

存储过程 MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body 其中,sp_name参数是存储过程的名称:proc_parameter表示存储过程的参数列表: characteristic参数指定存储过程的特性:routine_body参数是SQL代码的内容,可以用BEGIN-END来标志SQL代码的开始和结束. proc_paramete