sql判断NULL值:IF()、IFNULL()、NULLIF()、ISNULL()函数的区别使用

关于MySQL中对于NULL值的判断以及替换等问题中,我们可以使用IF()、IFNULL()、NULLIF()、ISNULL()函数,区别如下:

  1. IF()函数
    IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。

    sql 复制代码
    SELECT IF(TRUE,'1','0');    -- 1
    SELECT IF(FALSE,'1','0');   -- 0
  2. IFNULL()函数
    IFNULL(expr1,expr2),如果expr1的值为NULL,则返回expr2的值,如果expr1的值不为NULL,则返回expr1的值。

    sql 复制代码
    SELECT IFNULL(NULL,'0');    -- 0 
    SELECT IFNULL('123','0');   -- 123
  3. NULLIF()函数
    NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为NULL,否则返回值为expr1的值。

    sql 复制代码
    SELECT NULLIF('1','1');     -- null
    SELECT NULLIF('1','2');     -- 1
  4. ISNULL()函数
    ISNULL(expr),如果expr的值为NULL,则返回1,如果expr1的值不为NULL,则返回0。

    sql 复制代码
    SELECT ISNULL(NULL);        -- 输出结果:1
    SELECT ISNULL('1');     -- 输出结果:0
相关推荐
AOwhisky6 小时前
MySQL 学习笔记(第四期):SQL 语言之多表查询
linux·运维·网络·数据库·笔记·学习·mysql
小红卒6 小时前
mysql之udf提权
数据库·mysql·网络安全
Trouvaille ~7 小时前
【Redis篇】Redis 哨兵(Sentinel):高可用自动故障转移
数据库·redis·缓存·中间件·sentinel·高可用·哨兵
qfljg7 小时前
oracle 迁移到postgres
数据库·oracle
rockey6277 小时前
基于AScript的SQL脚本语言发布啦!
sql·c#·.net·script·expression·动态脚本
giaz14n9X8 小时前
Redis 分布式锁进阶第五十七篇
数据库·redis·分布式
剑神一笑8 小时前
Linux ls 命令深度解析:从目录遍历到颜色输出的实现原理
linux·服务器·数据库
Maynor9968 小时前
Codex API 网关迁移与流量优化实战
数据库·oracle
WyCAGy8ij8 小时前
Redis 分布式锁进阶第二篇讲解
数据库·redis·分布式
南极企鹅9 小时前
MySQL的两大支柱:undo Log&redo log
数据库·mysql·oracle