mysql实现if语句判断功能的六种使用形式

2023-10-29


前言

在Mysql数据库中实现判断功能有很多方式,具体又分为函数和if语句形式,函数的好处是可以作为sql的一部分来运行,而if语句则需要在存储过程中使用。

一、ifnull函数

语法:

IFNULL(expression, alt_value)

解释:

判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值

参数说明:

Expression:必须,要测试的值
alt_value:必须,expression 表达式为 NULL 时返回的值。

常用示例:

expression_1参数为空,返回a

SELECT IFNULL(NULL, 'a');

expression_1参数不为空,返回1

SELECT IFNULL(1, 'a');

空字符串也表示有值,返回空字符串

SELECT IFNULL('', 'a');

0也表示有值,返回0

SELECT IFNULL(0, 'a');

二、nullif函数

语法:

NULLIF(expression1, expression2)

解释:

NULLIF()函数用于比较两个表达式。如果两个表达式相等,则NULLIF()函数将返回NULL,否则它将返回第一个表达式。

常用示例:

两个表达式相等,返回null

SELECT NULLIF('abc', 'abc');

两个表达式不等,返回第一个表达式abc

SELECT NULLIF('abc', 'abcd');

三、if函数

语法:

IF(expr1,expr2,expr3)

解释:

如果表达式expr1=true(expr1 <> 0 and expr1 <> NULL),返回expr2,否则返回expr3,IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。

常用示例:

expr1参数为1,结果为真,返回正确

select if(1,'正确','错误');

四、if语句(多用于存储过程)

语法:

IF expression THEN 
statements;
END IF;

解释:

如果表达式求值为TRUE,则将执行语句,否则,控件将传递给后面的下一个语句。

五、if-else语句(多用于存储过程)

语法:

IF expression THEN
 statements;
ELSE
 else-statements;
END IF;

解释:

如果表达式求值为TRUE,则将执行statements语句,否则,执行else-statements语句。

六、if-elseif-else语句(多用于存储过程)

语法:

IF expression THEN
  statements;
ELSEIF elseif-expression THEN
  elseif-statements;
...
ELSE
  else-statements;
END IF;

解释:

如果表达式(expression)求值为TRUE,则IF分支中的语句(statements)将执行;如果表达式求值为FALSE,则如果elseif_expression的计算结果为TRUE,MySQL将执行elseif-expression,否则执行ELSE分支中的else-statements语句。

总结

word文档下载地址:mysql实现if语句判断功能的六种使用形式

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql实现if语句判断功能的六种使用形式 的相关文章

  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • Android在排序列表时忽略大小写

    我有一个名为路径的列表 我目前正在使用以下代码对字符串进行排序 java util Collections sort path 这工作正常 它对我的 列表进行排序 但是它以不同的方式处理第一个字母的情况 即它用大写字母对列表进行排序 然后用
  • Java AES 128 加密方式与 openssl 不同

    我们遇到了一种奇怪的情况 即我们在 Java 中使用的加密方法会向 openssl 生成不同的输出 尽管它们在配置上看起来相同 使用相同的键和 IV 文本 敏捷的棕色狐狸跳过了懒狗 加密为 Base64 字符串 openssl A8cMRI
  • 如何在不超过最大值的情况下增加变量?

    我正在为学校开发一个简单的视频游戏程序 我创建了一个方法 如果调用该方法 玩家将获得 15 点生命值 我必须将生命值保持在最大值 100 并且由于我目前的编程能力有限 我正在做这样的事情 public void getHealed if h
  • Hibernate.createBlob() 方法从 Hibernate 4.0.1 开始已弃用,并移至 Hibernate.getLobCreator(Session session).createBlob()

    Method Hibernate createBlob 已弃用自休眠4 0 1并搬到Hibernate getLobCreator Session session createBlob 任何解决方案我应该在方法内传递什么getLobCrea
  • 使用 AES SecretKey 的 Java KeyStore setEntry()

    我目前正在 Java 中开发一个密钥处理类 特别是使用 KeyStore 我正在尝试使用 AES 实例生成 SecretKey 然后使用 setEntry 方法将其放入 KeyStore 中 我已经包含了代码的相关部分 The KS Obj
  • 如何模拟从抽象类继承的受保护子类方法?

    如何使用 Mockito 或 PowerMock 模拟由子类实现但从抽象超类继承的受保护方法 换句话说 我想在模拟 doSomethingElse 的同时测试 doSomething 方法 抽象超类 public abstract clas
  • 在 S3 中迭代对象时出现“ConnectionPoolTimeoutException”

    我已经使用 aws java API 一段时间了 没有遇到太多问题 目前我使用的是库 1 5 2 版本 当我使用以下代码迭代文件夹内的对象时 AmazonS3 s3 new AmazonS3Client new PropertiesCred
  • Calendar.getInstance(TimeZone.getTimeZone("UTC")) 不返回 UTC 时间

    我对得到的结果真的很困惑Calendar getInstance TimeZone getTimeZone UTC 方法调用 它返回 IST 时间 这是我使用的代码 Calendar cal Two Calendar getInstance
  • 将 SignedHash 插入 PDF 中以进行外部签名过程 -workingSample

    遵循电子书第 4 3 3 节 PDF 文档的数字签名 https jira nuxeo com secure attachment 49931 digitalsignatures20130304 pdf 我正在尝试创建一个工作示例 其中 客
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • 如何在 Java 中测试一个类是否正确实现了 Serialized(不仅仅是 Serialized 的实例)

    我正在实现一个可序列化的类 因此它是一个与 RMI 一起使用的值对象 但我需要测试一下 有没有办法轻松做到这一点 澄清 我正在实现该类 因此在类定义中添加 Serialized 很简单 我需要手动序列化 反序列化它以查看它是否有效 我找到了
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我
  • java.lang.NumberFormatException: Invalid int: "3546504756",这个错误是什么意思?

    我正在创建一个 Android 应用程序 并且正在从文本文件中读取一些坐标 我在用着Integer parseInt xCoordinateStringFromFile 将 X 坐标转换为整数 Y 坐标的转换方法相同 当我运行该应用程序时
  • Netty:阻止调用以获取连接的服务器通道?

    呼吁ServerBootstrap bind 返回一个Channel但这不是在Connected状态 因此不能用于写入客户端 Netty 文档中的所有示例都显示写入Channel从它的ChannelHandler的事件如channelCon
  • Java中的Object类是什么?

    什么是或什么类型private Object obj Object http download oracle com javase 6 docs api java lang Object html是Java继承层次结构中每个类的最终祖先 从
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • Mysql 创建定义器

    我创建了一个在 CentOS Web 服务器上运行的 Intranet Web 应用程序 该应用程序使用另一个本地服务器 始终是 CentOS 作为 MySQL 数据库 在数据库内部我创建了例程 这些例程总是这样开始 CREATE DEFI
  • Trie 数据结构 - Java [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有任何库或文档 链接提供了在 java 中实现 Trie 数据结构的更多信息 任何帮助都会很棒 Thanks 你可以阅读Java特里树
  • ServletContainer 类未找到异常

    我无法再编译我的球衣项目 并且出现以下异常 GRAVE Servlet Project API threw load exception java lang ClassNotFoundException com sun jersey spi

随机推荐

  • python计算100以内7的倍数和与个数

    a 0 count 0 sz num 0 while a lt 100 a 1 if a 7 0 sz append a count 1 print 7的倍数是 a for i in range len sz num sz i print
  • 今天开始练习,第一天——A+B

    输入两个整数a和b 计算a b的和 本题很简单 但是注意此题是多组测试数据 即需要不停的接收系统的测试输入 你都可以计算结果并输出 输入格式 输入两个整数A和B 范围不超过2 10 输出格式 求A B 样例输入 1 1 10 20 样例输出
  • 定义一个学生类Student,包括3个数据成员:姓名name,学号no,分数score;三个静态数据成员:学生总人数count,总成绩sum和平均成绩average;带参数的构造函数用来初始化对象,成

    include
  • 密码学之一(Hash函数)

    定义 单向性 数据完整性 Hash冲突 常用的Hash算法 程序 Hash环问题 Hash应用场景 定义 Hash函数H将可变长度的数据M作为输入 产生固定长度的Hash值h Hash函数 哈希函数 散列函数 杂凑函数它们说的都是同一个含义
  • GPS nmealib学习笔记

    0 nmealib简介 nmealib是一个基于C语言的用于nmea协议的开源库 虽然nmea体积小巧 但是却具备了不少功能 分析NMEA语句并把结果保存在合适的C语言结构体中 除了解析NMEA语句之外 还可以产生NMEA语句 支持多种NM
  • 0.0.0.0这个IP地址代表什么?

    当socket绑定的IP地址0 0 0 0时 表示监听本机上的所有IP地址 也就是接收本机所有网卡发到本进程端口的请求 在网络中 0 0 0 0表示整个网络中的所有主机 当数据包在路由器之间转发时 在路由表中如果找不到目的IP所在的网段 就
  • 无线通信原理之F-OFDM技术

    目录 1 F OFDM系统的基本原理 2 F OFDM系统的子载波映射 3 F OFDM系统的子带滤波器设置 1 F OFDM系统的基本原理 F OFDM Filtered Orthogonal Frequency Division Mul
  • VMware安装Windows server 2016

    1 打开VMware 点击创建新的虚拟机 2 选择典型配置 并进行下一步 3 选择稍后安装操作系统 并进行下一步
  • STM32 IAP

    1 IAP IAP 即在应用编程 IAP 是用户自己的程序在运行过程User Flash 的部分区域进行烧写 目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级 通常实现 IAP 功能时 即用户程序运行中作自身的
  • m4头发mod制作

    贴图制作 PS 添加底色 滤镜 添加杂色 高斯分布 单色 滤镜 模糊 动感模糊 角度90 距离自己调 图像 调整 亮度对比度 新建图层 随意加一些纤维 让头发看起来更密 再根上面一样添加滤镜只要动感模糊就可以 新建图层 再继续加 加滤镜从添
  • 大数据_什么是数据中台?

    目录 一 数据中台的定义 二 数据中台必备的是个核心能力 三 数据中台VS业务中台 四 数据中台VS数据仓库 五 数据中台VS现有信息架构 六 数据中台的业务价值与技术价值 一 数据中台的定义 数据中台是一套可持续 让企业的数据用起来 的机
  • VS2017:打开时提示登录,登录窗口却打不开

    转自 VS2017无法登录微软账户的问题 亲测有效 这方法真是神了
  • ffmpeg接收rtsp流异常问题

    今天使用ffmpeg接收rtsp流转mat做人脸识别时碰到了一个问题 就是使用 avformat open input 打开rtsp url时一直出现段错误 但是vlc播放url可以正常播放 百度一下发现 ffmpeg默认rtsp使用tcp
  • 微信小程序uview图标不显示

    问题 之前还好好的 图标能显示 不知何时 图标突然不显示了 百度后发现 原来是因为我引入的iconfont css 导致的css覆盖导致的 字体图标不显示一般由于字体图标的名称被覆盖导致 如下图 问题解决参考 https www kancl
  • 一看就懂!如何将Zabbix监测到的数据导出?

    前言 Zabbix是一款服务器监测应用 有良好的web界面 美中不足的是缺乏导出报表的功能 但是Zabbix同时也提供了强有力的API支持 https www zabbix com documentation 3 4 zh manual a
  • 一键分块,轻松拼图!使用Segment Anything让你的设计更加高效!

    目录 第一步 第二步 第三步 第四步 如果你是一名设计师或者摄影爱好者 那么你一定经常需要将图片分割成不同的块 以便在不同的场合下使用 例如 在网页设计中 你可能需要将图片分割成不同的块 以便在不同的区域中使用 而分块的难度不小 需要一定的
  • java easypoi导出word时添加空白页导出多组相同类型的数据

    1 需求 导出用户信息 模板如下 要求 导出多个用户信息时 另起一页 根据模板生成下一条用户信息 2 模板变化 easypoi不能直接创建空白页 下一页 但可以使用apache的poi中的document createParagraph c
  • 【系统架构】什么是集群?为什么要使用集群架构?

    什么是集群 为什么要使用集群架构 1 什么是集群 2 为什么要使用集群 2 1 高性能 2 2 价格有效性 2 3 可伸缩性 2 4 高可用性 2 5 透明性 2 6 可管理性 2 7 可编程性 3 集群的常见分类 3 1 负载均衡集群 3
  • 提速科研,AI 正引领一场新革命

    By 超神经 内容一览 五一国际劳动节假期 HyperAI超神经为大家汇总了往期 ScienceAI 相关报道 对该领域感兴趣的读者可以来一探究竟了 关键词 ScienceAI 盘点 整理 缓缓 作为近两年的技术热点 ScienceAI 在
  • mysql实现if语句判断功能的六种使用形式

    文章目录 前言 一 ifnull函数 二 nullif函数 三 if函数 四 if语句 多用于存储过程 五 if else语句 多用于存储过程 六 if elseif else语句 多用于存储过程 总结 前言 在Mysql数据库中实现判断功