浅谈Mysql中类似于nvl()函数的ifnull()函数

 更新时间:2017年02月22日 08:55:26   投稿:jingxian  
下面小编就为大家带来一篇浅谈Mysql中类似于nvl()函数的ifnull()函数。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

IFNULL(expr1,expr2)

如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。

mysql> select IFNULL(1,0);
    -> 1
mysql> select IFNULL(0,10);
    -> 0
mysql> select IFNULL(1/0,10);
    -> 10
mysql> select IFNULL(1/0,'yes');
    -> 'yes'
 
IF(expr1,expr2,expr3) 

如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3。IF()返回一个数字或字符串值,取决于它被使用的上下文。

mysql> select IF(1>2,2,3);
    -> 3
mysql> select IF(1<2,'yes','no');
    -> 'yes'
mysql> select IF(strcmp('test','test1'),'yes','no');
    -> 'no'

expr1作为整数值被计算,它意味着如果你正在测试浮点或字符串值,你应该使用一个比较操作来做。

mysql> select IF(0.1,1,0);
    -> 0
mysql> select IF(0.1<>0,1,0);
    -> 1

在上面的第一种情况中,IF(0.1)返回0,因为0.1被变换到整数值, 导致测试IF(0)。这可能不是你期望的。在第二种情况中,比较测试原来的浮点值看它是否是非零,比较的结果被用作一个整数。

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 

第一个版本返回result,其中value=compare-value。第二个版本中如果第一个条件为真,返回result。如果没有匹配的result值,那么结果在ELSE后的result被返回。如果没有ELSE部分,那么NULL被返回。

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

以上这篇浅谈Mysql中类似于nvl()函数的ifnull()函数就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 怎样安全地关闭MySQL实例

    怎样安全地关闭MySQL实例

    这篇文章主要介绍了怎样安全地关闭MySQL实例,文中讲解非常细致,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-07-07
  • 详解mysql基本操作语句命令

    详解mysql基本操作语句命令

    本文介绍了 链接Mysql,以及增删改查等功能,需要的朋友可以参考
    2017-04-04
  • MySQL千万级数据的大表优化解决方案

    MySQL千万级数据的大表优化解决方案

    mysql数据库中的表数据量几千万后,查询速度会很慢,日常各种卡慢,严重影响使用体验。在考虑升级数据库或者换用大数据解决方案前,必须优化现有mysql数据库表设计和sql语句。
    2022-11-11
  • 浅谈MySQL大表优化方案

    浅谈MySQL大表优化方案

    这篇文章主要介绍了浅谈MySQL大表优化方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • MySQL的常见存储引擎介绍与参数设置调优

    MySQL的常见存储引擎介绍与参数设置调优

    这篇文章主要介绍了MySQL的常见存储引擎介绍与参数设置调优,需要的朋友可以参考下
    2018-03-03
  • MySQL字符编码设置方法

    MySQL字符编码设置方法

    这篇文章主要介绍了MySQL字符编码设置方法的相关资料,需要的朋友可以参考下
    2016-05-05
  • mysql8.0.0 winx64.zip解压版安装配置教程

    mysql8.0.0 winx64.zip解压版安装配置教程

    这篇文章主要为大家详细介绍了mysql8.0.0 winx64.zip解压版安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • phpmyadmin中为站点设置mysql权限的图文方法

    phpmyadmin中为站点设置mysql权限的图文方法

    在一个服务器上一般来讲都不止一个站点,更不止一个MySQL(和PHP搭配之最佳组合)数据库。
    2011-03-03
  • MySQL连接查询实例详解

    MySQL连接查询实例详解

    这篇文章主要介绍了MySQL连接查询,结合实例形式总结分析了mysql表的创建、内连接、左连接、右连接、复合条件连接查询等相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • MySQL如何从数据库中删除表中所有数据

    MySQL如何从数据库中删除表中所有数据

    这篇文章主要介绍了MySQL如何从数据库中删除表中所有数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06

最新评论