【MySQL】IF、ISNULL、IFNULL、NULLIF 函数用法

2023-11-20 16:04

本文主要是介绍【MySQL】IF、ISNULL、IFNULL、NULLIF 函数用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IF

含义:函数用于判断第一个表达式是否为 true,如果为 true 返回第二个参数,否则返回第三个参数

SELECT IF(2=2, 'a', 'b')
SELECT IF(1, 'a', 'b')
SELECT IF(2, 'a', 'b')
SELECT IF('2', 'a', 'b')

结果:a

SELECT IF(2!=2, 'a', 'b') 
SELECT IF(0, 'a', 'b') 
SELECT IF('', 'a', 'b') 
SELECT IF(null, 'a', 'b') 

结果:b

结论:函数中第一个参数为 false,0,空字符串,null 都返回第三个参数,否则返回第二个参数

ISNULL

含义:判断是否为 null,如果为 null 则返回 1,否则返回 0

SELECT ISNULL(0)
SELECT ISNULL('') 

结果:0

SELECT ISNULL(null)

结果:1

结论:MySQL不会将 0 和 空字符串 判断为空,比较严谨,只会将真实的 null 判断为空

IFNULL

含义:函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,否则返回第一个参数的值

SELECT IFNULL('', '空的') 

结果:空字符串,无显示

SELECT IFNULL(0, '空的') 

结果:0

SELECT IFNULL(null, '空的')

结果:空的

结论:当第一个参数是 null 时,才会返回第二个参数,否则直接返回第一个参数

NULLIF

含义:如果第二个参数等于第一个参数则返回 null ,否则返回第一个参数

SELECT NULLIF('', '') 
SELECT NULLIF(null, null) 
SELECT NULLIF(1, 1)

结果:(Null)

SELECT NULLIF('', null)

结果:空字符串,无显示

SELECT NULLIF(1, 2)

结果:1

结论:当第一个参数和第二个参数相等时,才返回 null ,否则直接返回第一个参数

参考

MySQL 中 ISNULL, IFNULL, NULLIF 的区别

这篇关于【MySQL】IF、ISNULL、IFNULL、NULLIF 函数用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/395805

相关文章

Mysql数据库聚簇索引与非聚簇索引举例详解

《Mysql数据库聚簇索引与非聚簇索引举例详解》在MySQL中聚簇索引和非聚簇索引是两种常见的索引结构,它们的主要区别在于数据的存储方式和索引的组织方式,:本文主要介绍Mysql数据库聚簇索引与非... 目录前言一、核心概念与本质区别二、聚簇索引(Clustered Index)1. 实现原理(以 Inno

sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符

《sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符》:本文主要介绍sqlserver、mysql、oracle、pgsql、sqlite五大... 目录一、转义符1.1 oracle1.2 sqlserver1.3 PostgreSQL1.4 SQLi

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

Java8 Collectors.toMap() 的两种用法

《Java8Collectors.toMap()的两种用法》Collectors.toMap():JDK8中提供,用于将Stream流转换为Map,本文给大家介绍Java8Collector... 目录一、简单介绍用法1:根据某一属性,对对象的实例或属性做映射用法2:根据某一属性,对对象集合进行去重二、Du