我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL:IFNULL无法返回null的情况

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL:IFNULL无法返回null的情况

标签:Mysql, 数据库

为什么当exp为”空“时,IFNULL(exp,null)无法返回null。

前情提要

什么情景下会发生该问题

比如我们要找出一个表中只出现过一次的最大数字。如果没找到则返回NULL(Leetcode题目)。 又或者是找出某个不等于特定值的数,这个时候用IFNULL,很合理也很容易想到。

比如我们要找出不等于0的数,如果没找到就返回NULL。

SELECT IFNULL(num,null) AS numFROM MyNumbersWHERE num!=0

However,这条SQL没用。你会发现返回的是空值,而不是null。这里为了方便直接复制leetcode的输出

输入MyNumbers =| num | | --- | | 0 |输出| num || --- |

为啥呢?如果表中的所有数都等于0,那么按照SQL语句的执行顺序,FROM->WHERE->SELECT,在WHERE筛选后num不就为null了吗?为什么IFNULL无法返回后值null呢?

为啥在WHERE之后就不生效了?先思考一下,WHERE筛选之后的结果集是NULL吗?

如是。它真的是NULL吗?如是。WHERE筛选后确实没有匹配的记录,那它的结果集里面会有NULL吗?很明显不会,单纯就是啥都没有,即emptyset,空值的集合。

而IFNULL是干什么的?对于IFNULL(exp,value)来说,当exp的结果为NULL,才会返回value。而不是当exp的结果为空值(N/A)时,返回value。

要解决这个问题也很简单,加个聚合函数完事。最直接的就是加个MAX,MAX对emptyset计算,发现找不到任何一条记录,诶,那它就返回个NULL,完事。

SELECT IFNULL(MAX(num),null)AS numFROM MyNumbersWHERE num!=0

来源地址:https://blog.csdn.net/white_night_SZTU/article/details/134043823

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL:IFNULL无法返回null的情况

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

浅谈mysql返回Boolean类型的几种情况

mysql返回Boolean类型第一种情况,直接返回select id='22aa' from mytest where age=202 返回1 可封装为true select count(*)=1 from mytest where a
2022-05-17

c++函数返回引用的情况有哪些

C++函数返回引用的情况有以下几种:返回左值引用:函数可以返回已存在的变量、类成员或者数组的引用。例如:int& getVariable() {static int x = 5;return x;}class MyClass {pub
2023-10-23

android getActivity.findViewById获取ListView 返回NULL的方法

在控件ID正确的情况下,检查是否在实例化布局文件之后,获取LISTVIEW, 先inflate找layout下布局文件,并实例化后才能获得Listview的ID demo:public class FragmentPage extends
2022-06-06

如何处理PHP接口返回非JSON数据的情况

如何处理PHP接口返回非JSON数据的情况在Web开发中,我们经常会使用PHP编写接口来与前端进行数据交互。通常情况下,我们会将数据以JSON格式返回给前端,以便前端能够方便地解析和处理数据。然而,有时候接口返回的数据并非JSON格式,可
如何处理PHP接口返回非JSON数据的情况
2024-03-12

DBeaver 无法连接mysql可能的情况

DBeaver 无法连接mysql可能的两种情况: mysql user 没有远程连接权限。 mysql> use mysql;Reading table information for completion of table and c
2023-08-16

PHP 函数返回数组类型的数据有哪些情况?

php 函数在返回数组类型的数据时可能会遇到以下情况:明确声明返回数组类型,则直接返回数组;返回 null 值会引发错误;调用接收数组的函数可返回另一个数组。PHP 函数返回数组类型的数据情况PHP 中,函数在返回数组类型的数据时,通常会
PHP 函数返回数组类型的数据有哪些情况?
2024-04-20

如何解决Apache2无法解析PHP的情况

标题:解决Apache2无法解析PHP的问题近年来,随着互联网的快速发展,网站开发越来越广泛应用PHP语言。Apache2作为一款广泛使用的Web服务器软件,许多开发者也选择将Apache2与PHP结合使用。然而,有时候在配置Apache
如何解决Apache2无法解析PHP的情况
2024-03-08

Android中findViewById返回为空null的快速解决办法

【问题描述】 Android中如下代码:LinearLayout groupPollingAddress = (LinearLayout)findViewById(R.layout.fragment_field_list); 返回为null
2022-06-06

怎么解决vuejs用ip无法访问的情况

这篇文章主要讲解了“怎么解决vuejs用ip无法访问的情况”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决vuejs用ip无法访问的情况”吧!vuejs中用ip无法访问的解决办法:1、
2023-06-25

如何处理PHP无法收到参数的情况

如何处理PHP无法收到参数的情况在PHP开发中,经常会遇到无法收到参数的情况。这种情况可能会导致程序无法正常运行,因此需要及时处理。本文将介绍如何识别和处理PHP无法收到参数的情况,并提供具体的代码示例。1.检查GET和POST参数首
如何处理PHP无法收到参数的情况
2024-03-11

java mockito无返回值的方法是什么

在使用Mockito时,如果要模拟一个无返回值的方法,可以使用doNothing()方法。例如:// 创建一个mock对象SomeClass someClassMock = Mockito.mock(SomeClass.class);/
java mockito无返回值的方法是什么
2024-03-13

Python openpyxl 无法保存文件的情况如何解决

本篇内容介绍了“Python openpyxl 无法保存文件的情况如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用openpyxl
2023-06-14

如何解决Ubuntu系统中PHP无法启动的情况

《解决Ubuntu系统中PHP无法启动的问题》在使用Ubuntu系统时,PHP作为一种常见的服务器端脚本语言,常常用于开发网站和Web应用程序。然而,有时候我们可能会遇到PHP无法启动的情况,这可能会给我们的工作和开发造成困扰。本文将介绍
如何解决Ubuntu系统中PHP无法启动的情况
2024-02-28

解决PHP无法返回JSON数据的几种方法

解决PHP无法返回JSON数据的几种方法,需要具体代码示例在Web开发中,常常会遇到需要通过PHP返回JSON数据的情况。然而有时候会遇到一些问题,比如PHP无法正确返回JSON数据。这时候,我们就需要找出并解决问题的原因。下面将介绍几种
解决PHP无法返回JSON数据的几种方法
2024-03-12

C++ 函数调用异常处理:参数传递和返回值中的异常情况

摘要:函数调用中的异常处理涉及:参数传递异常:传递的参数引发异常时,异常传递给调用函数。返回值异常:函数通过返回值引发异常,直接传递给调用函数。实战示例:myclass::func() 函数参数为空字符串时抛出 std::invalid_a
C++ 函数调用异常处理:参数传递和返回值中的异常情况
2024-05-02

Windows8无法切换输入法问题的两种情况及解决方法

一般遇到的输入法无法切换的情况会有两种:一、无法显示出语言栏,使用快捷键也无法切换出来,如下图:解决方案:可以通过重置输入法设置来重新显示,方法如下:1、打开控制面板:2、点击“更改输入法”:3、 点击左侧http:
2023-06-06

编程热搜

目录