mysql中替代null的IFNULL()与COALESCE()函数详解

 更新时间:2017年06月13日 11:02:35   作者:兴国First  
这篇文章主要给大家介绍了关于mysql中替代null的IFNULL()与COALESCE()函数的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看看吧。

在MySQL中isnull()函数不能作为替代null值!

如下:

首先有个名字为business的表:

SELECT ISNULL(business_name,'no business_name') AS bus_isnull FROM business WHERE id=2

直接运行就会报错:

错误代码: 1582

Incorrect parameter count in the call to native function 'isnull'

所以,isnull()函数在mysql中就行不通了。可以用ifnull()coalesce()代替。如下:

使用ifnull()函数:

SELECT IFNULL(business_name,'no business_name') AS bus_ifnull FROM business WHERE id=2

运行结果:


当查询的值不为null时:

SELECT IFNULL(business_name,'no business_name') AS bus_ifnull FROM business WHERE id=1

结果如下:


使用coalesce()函数:

SELECT COALESCE(business_name,'no business_name') AS bus_coalesce FROM business WHERE id=2

结果如下:

 

当查询值不为null时:

SELECT COALESCE(business_name,'no business_name') AS bus_coalesce FROM business WHERE id=1

其中:coalesce()还可以返回第一个不为null的值。如下:

SELECT COALESCE(business_name,district_id,id) AS bus_coalesce FROM business WHERE id=2

那么,isnull()在mysql中怎么用呢?答案就是用在where后面。如下:

SELECT * FROM business WHERE ISNULL(business_name)

结果如下:


同样,is null is not null 也是用在where后面。

SELECT * FROM business WHERE business_name IS NULL

结果如下:

SELECT * FROM business WHERE business_name IS NOT NULL

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • Mysql中的select ...for update

    Mysql中的select ...for update

    这篇文章主要介绍了Mysql中的select ...for update用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • mysql 5.7.14 安装配置简单教程

    mysql 5.7.14 安装配置简单教程

    这篇文章主要为大家分享了mysql 5.7.14安装配置方法图文教程,一看就会的mysql 5.7.14安装教程,感兴趣的朋友可以参考一下
    2016-08-08
  • 一文教你MySQL如何优化无索引的join

    一文教你MySQL如何优化无索引的join

    所谓索引就是为特定的mysql字段进行一些特定的算法排序,比如二叉树的算法和哈希算法,哈希算法是通过建立特征值,然后根据特征值来快速查找,下面这篇文章主要给大家介绍了关于MySQL如何优化无索引join的相关资料,需要的朋友可以参考下
    2022-01-01
  • SQL中distinct 和 row_number() over() 的区别及用法

    SQL中distinct 和 row_number() over() 的区别及用法

    这篇文章主要介绍了SQL中distinct 和 row_number() over() 的区别及用法的相关资料,需要的朋友可以参考下
    2017-03-03
  • MySQL 两张表数据合并的实现

    MySQL 两张表数据合并的实现

    本文主要介绍了MySQL 两张表数据合并的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • MYSQL METADATA LOCK(MDL LOCK) 理论及加锁类型测试

    MYSQL METADATA LOCK(MDL LOCK) 理论及加锁类型测试

    这篇文章主要介绍了MYSQL METADATA LOCK(MDL LOCK)的内容,有理论知识和加锁类型测试的以下代码,感兴趣的朋友请参考下午文
    2021-09-09
  • Linux系统下MySQL的初始化和配置指南

    Linux系统下MySQL的初始化和配置指南

    当MySQL的系统库(mysql系统库)发生故障或需要新加一个mysql实例时,需要初始化mysql数据库,这篇文章主要给大家介绍了关于Linux系统下MySQL的初始化和配置指南的相关资料,需要的朋友可以参考下
    2023-11-11
  • mysql忘记密码的解决方法

    mysql忘记密码的解决方法

    mySQL忘記管理密碼的解決方法 ! 如果mySQL正在運作,請先關閉,
    2008-06-06
  • MySQL性能优化

    MySQL性能优化

    MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性能非常的差,仅仅是一个玩具数据库。因此在产品中使用MySQL数据库必须进行必要的优化
    2013-02-02
  • 浅析MySQL的lru链表

    浅析MySQL的lru链表

    这篇文章主要介绍了MySQL lru链表的相关资料,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-11-11

最新评论