MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用

IF()

IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。类似三目运算符

IFNULL()

IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。

NULLIF()

NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。

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

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

ISNULL()

ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。

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

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

INSTR()

INSTR函数为字符查找函数,其功能是查找一个字符串在另一个字符串中首次出现的位置。

在此函数中可以自定义查找的初始位置,与出现次数的位置。

在一些特定的sql查询中可以替换like进行模糊查询,可以代替in判断包含关系

在abcd中查找a的位置,从第一个字母开始查,查找第一次出现时的位置
select instr(‘abcd’,’a’,1,1) from dual; —1
select instr(‘abcd’,’c’,1,1) from dual; —3
select instr(‘abcd’,’e’,1,1) from dual; —0

应用于模糊查询:instr(字段名/列名, ‘查找字段’)
select code,name,dept,occupation from staff where instr(code, ‘001’)> 0;
等同于
select code, name, dept, occupation from staff where code like ‘%001%’ ;

应用于判断包含关系:
select ccn,mas_loc from mas_loc where instr(‘FH,FHH,FHM’,ccn)>0;
等同于
select ccn,mas_loc from mas_loc where ccn in (‘FH’,’FHH’,’FHM’);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值