iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL ifnull的嵌套使用说明
  • 262
分享到

MySQL ifnull的嵌套使用说明

MySQLifnullifnull嵌套 2022-05-26 03:05:00 262人浏览 独家记忆
摘要

Mysql ifnull的嵌套使用 在网上查询ifnull有没有嵌套使用的方式,但是貌似没有人提到过这个用法:大都是简单的判断一个字段是否为空,然后用另外一个值代替的方式使用; 即是: select i

Mysql ifnull的嵌套使用

在网上查询ifnull有没有嵌套使用的方式,但是貌似没有人提到过这个用法:大都是简单的判断一个字段是否为空,然后用另外一个值代替的方式使用;

即是:


select ifnull(a,b) from A ;

但是我遇到的问题是两个字段,大概场景是这样的:

每一个商店会有两种打折方式vip_discount与simple_discount,从数据库查出来以discount字段命名;且以vip_discount为主。

意思是如果vip_discount不为空,就返回它的值,若它的值为空就要进一步判断simple_discount字段是否为空,如果不为空就返回simple_discount的值,否则就返回一个空字符串

这里我就想到了可不可以使用ifnull嵌套来判断达到我的目的。

在网上查了许久也没有发现有类似的博客,就寻思自己试试不就行啦:


select ifnull(vip_discount,ifnull(simple_discount,"")) as discount from A;

这样就解决问题了,此sql语句也可以在后面添加条件语句来补充其他条件查询。

mysql之ifnull的那些坑

废话不多说,直接看SQL:


UPDATE
    lb_user u
SET u.user_level = (
    SELECT
        IFNULL(levelid, u.user_level)
    FROM lb_user_level
    WHERE `status` = 1 AND levelid > u.user_level
    AND (upgrade_score < u.empirical OR upgrade_total_money < u.total_consumption_money)
    ORDER BY levelid DESC
    LIMIT 1
);

这个SQL乍一看没什么问题,执行的时候也成功了,可再次执行就修改出错,原因是根据当前的条件无法检索出数据,返回数据为空,注意是数据为空,没有这条数据,而不是有这条数据存在该字段为空,经过排查,修改SQL如下:


UPDATE
    lb_user u
SET u.user_level = IFNULL((
    SELECT
        levelid
    FROM lb_user_level
    WHERE `status` = 1 AND levelid > u.user_level
    AND (upgrade_score < u.empirical OR upgrade_total_money < u.total_consumption_money)
    ORDER BY levelid DESC
    LIMIT 1
), u.user_level);

经过修改后执行就成功了,并且不存在IFNULL失效的情况;

总结原因是因为:

MYSQL中IFNULL仅可以判断该数据存在的情况下为NULL,而不能判断该条数据没有查询到而为NULL的情况。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持自学编程网。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL ifnull的嵌套使用说明

本文链接: https://www.lsjlt.com/news/10418.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 【MySQL】MySQL的IFNULL()、ISNULL()、NULLIF()函数用法说明
    文章目录 一、IFNULL() 函数二、ISNULL() 函数三、NULLIF() 函数四、总结五、相关推荐 一、IFNULL() 函数 MySQL IFNULL 函数是 MySQL 控制流函数之一。 它有两个参数,第一个参...
    99+
    2023-08-25
    mysql 数据库
  • mybatis 集合嵌套查询和集合嵌套结果的区别说明
    目录集合嵌套查询和集合嵌套结果的区别1.创建2张表,建立主外键关系2.建立实体类3.修改配置文件4.建立映射文件5.创建测试类MyBatis 嵌套查询解析对应的JavaBean对应的...
    99+
    2024-04-02
  • MySQL游标的嵌套使用方法
    本篇内容主要讲解“MySQL游标的嵌套使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL游标的嵌套使用方法”吧! 前...
    99+
    2024-04-02
  • MySQL表级锁使用说明
    目录表级锁1、表级别的S锁,X锁2、意向锁3、自增锁(AUTO-INC锁)4、元数据锁(MDL锁)表级锁 该锁会锁定整张表,它是mysql中最基本的锁策略,并不依赖于存储引擎(不管你是MySQL的什么存储引擎,对于表锁的...
    99+
    2024-04-02
  • MySQL 的CASE WHEN 语句使用说明
    在MySQL中,CASE WHEN语句用于对一系列条件进行判断,并根据不同的条件返回不同的结果。语法如下:```CASEWHEN c...
    99+
    2023-08-17
    MySQL
  • RCMD的使用说明
    这篇文章主要介绍“RCMD的使用说明”,在日常操作中,相信很多人在RCMD的使用说明问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”RCMD的使用说明”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!*****...
    99+
    2023-06-08
  • python 嵌套型partials的使用
    要实现的目标,简单示例: from functools import partial def func1(f):     return f def func2(f1):     re...
    99+
    2024-04-02
  • mysql8.0JSON_CONTAINS的使用说明
    目录JSON_CONTAINS的使用语法案例JSON_CONTAINS函数问题结构如下JSON_CONTAINS的使用 语法 JSON_CONTAINS(json_doc, val[...
    99+
    2024-04-02
  • Python嵌套循环的使用
    目录1 什么是嵌套循环2 Python 嵌套 for 循环2.1 嵌套循环打印图案2.2 在 for 循环中的while循环2.3 实践:打印一个带有 5 行 3 列星形的矩形图案3...
    99+
    2023-02-22
    Python嵌套循环
  • mysql索引合并的说明和使用
    本篇内容介绍了“mysql索引合并的说明和使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是索引合并...
    99+
    2024-04-02
  • mysql的ifnull函数怎么使用
    在MySQL中,IFNULL函数用来判断一个字段或表达式是否为NULL,如果是NULL,则返回一个指定的值,如果不是NULL,则返回...
    99+
    2024-04-09
    mysql
  • python中的函数嵌套和嵌套调用
    目录函数嵌套和嵌套调用函数的嵌套函数的嵌套调用函数中定义函数在函数内部定义的函数要在函数内部调用函数内的函数可以引用外部变量试图对外部变量进行修改函数怎么修改外部变量的值的说明函数嵌...
    99+
    2024-04-02
  • LINQ嵌套怎么使用
    这篇文章主要介绍“LINQ嵌套怎么使用”,在日常操作中,相信很多人在LINQ嵌套怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”LINQ嵌套怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!LI...
    99+
    2023-06-17
  • z3py使用说明
    http://z3prover.github.io/api/html/z3.html http://www.cs.tau.ac.il/~msagiv/courses/asv/z3py/guide-examples.htm 学习...
    99+
    2023-01-31
    使用说明 z3py
  • window.dialogArguments 使用说明
    f1.php页面JS代码,第二个传的参数必须是self不能是别的 复制代码 代码如下: <script type="text/javascript"> function ...
    99+
    2022-11-21
    dialogArguments
  • java ImmutableMap的使用说明
    ImmutableMap:一个不可变集合 java中的Immutable对象: 简单地说,如果一个对象实例不能被更改就是一个Immutable的对象,Java SDK提供的大量值对象...
    99+
    2024-04-02
  • ORACLE event的使用说明
    这篇文章给大家介绍ORACLE event的使用说明,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。eventEvent Reference 10013 - Monitor Transaction Recovery102...
    99+
    2023-06-06
  • Pytorch BertModel的使用说明
    基本介绍 环境: Python 3.5+, Pytorch 0.4.1/1.0.0 安装: pip install pytorch-pretrained-bert 必需参数: ...
    99+
    2024-04-02
  • 【pytorch】torch.cdist使用说明
    使用说明 torch.cdist的使用介绍如官网所示, 它是批量计算两个向量集合的距离。 其中, x1和x2是输入的两个向量集合。 p 默认为2,为欧几里德距离。 它的功能上等同于 scipy.sp...
    99+
    2023-09-02
    pytorch 深度学习 python
  • Xilinx URAM使用说明
    Xilinx URAM(Ultra RAM)是一种高性能、低延迟的存储器资源,用于在Xilinx FPGA器件中实现大容量的存储和高...
    99+
    2023-09-23
    Xilinx
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作