mysql条件判断函数的具体使用

 更新时间:2023年01月09日 09:49:44   作者:运维家  
本文主要介绍了mysql条件判断函数的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

条件判断函数也被称为控制流程函数,根据满足的不同条件,执行响应的流程。mysql中进行条件判断的函数有if、ifunll和case等。

IF(expr,v1,v2)函数

IF(expr,v1,v2):如果表达式expr是TRUE(expr <> 0 and expr <> null),则返回值为V1;否则返回值为V2。

mysql> select if (1>2, 2, 3), if (1<2, 'yes', 'no');
+----------------+-----------------------+
| if (1>2, 2, 3) | if (1<2, 'yes', 'no') |
+----------------+-----------------------+
|              3 | yes                   |
+----------------+-----------------------+
1 row in set (0.00 sec)

mysql>

小提示:

如果V1或者V2中只有一个明确是null,则if()函数的结果类型为非null表达式的结果类型。

IFNULL(v1,v2)函数

ifnull(v1,v2):假如V1不为null,则ifnull()的返回值为v1;否则其返回值为v2。

ifnull()的返回值是数字或者字符串,具体情况取决于其所在的语境。

mysql> select ifnull(1, 2), ifnull(null, 'yunweijia'), ifnull(1/0, 'heihei');
+--------------+---------------------------+-----------------------+
| ifnull(1, 2) | ifnull(null, 'yunweijia') | ifnull(1/0, 'heihei') |
+--------------+---------------------------+-----------------------+
|            1 | yunweijia                 | heihei                |
+--------------+---------------------------+-----------------------+
1 row in set (0.00 sec)

mysql>

CASE函数

case expr when v1 then r1 [when v2 then 2]...[else rn+1]end:如果expr值等于某个vn,则返回对应位置then后面的结果;如果与所有值都不相等,则返回else后面的rn+1。

mysql> select case 2 when 1 then 'one' when '2' then 'two' else 'more' end;
+--------------------------------------------------------------+
| case 2 when 1 then 'one' when '2' then 'two' else 'more' end |
+--------------------------------------------------------------+
| two                                                          |
+--------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>
mysql> select case 5 when 1 then 'one' when '2' then 'two' else 'more' end;
+--------------------------------------------------------------+
| case 5 when 1 then 'one' when '2' then 'two' else 'more' end |
+--------------------------------------------------------------+
| more                                                         |
+--------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>

 小提示:

可以按照shell中的if语句来理解。

一个case表达式的默认返回值类型是任何返回值的相容集合类型,但具体情况视其所在语境而定。

到此这篇关于mysql条件判断函数的具体使用的文章就介绍到这了,更多相关mysql条件判断 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL查询优化--调整内部变量的详解

    MySQL查询优化--调整内部变量的详解

    本篇文章是对MySQL查询优化中的调整内部变量进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • MySQL基本运维命令详解

    MySQL基本运维命令详解

    这篇文章主要介绍了MySQL基本运维命令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01
  • 分享3个MySQL查询容易踩的坑

    分享3个MySQL查询容易踩的坑

    无论你是技术大佬,还是刚入行的小白,时不时都会踩到Mysql数据库的坑这篇文章主要给大家介绍了关于3个MySQL查询容易踩的坑,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • MySQL 文本文件的导入导出数据的方法

    MySQL 文本文件的导入导出数据的方法

    但有时为了更快速地插入大批量数据或交换数据,需要从文本中导入数据或导出数据到文本。下面的具体的方法大家可以参考下。多测试。
    2009-11-11
  • mysql不支持group by的解决方法小结

    mysql不支持group by的解决方法小结

    下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了
    2020-02-02
  • MySQL子查询详细教程

    MySQL子查询详细教程

    这篇文章主要介绍了MySQL子查询详细教程的相关资料,需要的朋友可以参考下
    2022-10-10
  • Mysql查询时如何使用for update行锁还是表锁

    Mysql查询时如何使用for update行锁还是表锁

    这篇文章主要介绍了Mysql查询时如何使用for update行锁还是表锁问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • mysql日期和时间的间隔计算实例分析

    mysql日期和时间的间隔计算实例分析

    这篇文章主要介绍了mysql日期和时间的间隔计算,结合实例形式分析了mysql日期和时间间隔计算的相关操作技巧与注意事项,需要的朋友可以参考下
    2019-12-12
  • SQL使用ROW_NUMBER() OVER函数生成序列号

    SQL使用ROW_NUMBER() OVER函数生成序列号

    这篇文章主要介绍了SQL使用ROW_NUMBER() OVER函数生成序列号,ROW_NUMBER()从1开始,为每一条分组记录返回一个数字,下面文章内容具有一定的参考价值,需要的小伙伴可以参考一下
    2021-12-12
  • mysql慢查询操作实例分析【开启、测试、确认等】

    mysql慢查询操作实例分析【开启、测试、确认等】

    这篇文章主要介绍了mysql慢查询操作,结合实例形式分析了mysql慢查询操作中的开启、测试、确认等实现方法及相关操作技巧,需要的朋友可以参考下
    2019-12-12

最新评论