Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数

MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的用法解读

作者:十九本命

这篇文章主要介绍了MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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判断包含关系

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
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');

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文