SQLPathLab
条件与 NULL · 基础

IFNULL

用默认值替换 NULL。

简介

MySQL 的 IFNULL(value, fallback) 只在第一个表达式为 NULL 时返回备用值,空字符串、0 和 FALSE 不会触发替换。备用值应与原字段保持可兼容的数据类型,否则隐式转换可能影响排序和计算;跨数据库查询可优先考虑标准 SQL 的 COALESCE。

基础语法

SELECT IFNULL(phone, 'N/A') AS phone FROM customers;

示例

IFNULL 示例

示例把 customers.phone 中的 NULL 显示为 N/A,同时保留已有号码,说明 IFNULL 不会改写原表数据。

示例数据表

表名:customers
customers
phone
138-0000-0001
NULL
138-0000-0003

运行结果

result
phone
138-0000-0001
N/A
138-0000-0003

常见问题

IFNULL 会把空字符串也替换掉吗?

不会。IFNULL 只在表达式为 NULL 时返回替代值;空字符串、0 和 FALSE 都不是 NULL。

IFNULL 与 COALESCE 怎么选择?

MySQL 中 IFNULL 只接两个参数;COALESCE 可依次检查多个值并且更便于跨数据库迁移。

替代值为什么要注意类型?

数据库需要推导统一结果类型;数字与文本混用可能触发隐式转换,影响比较、排序或下游程序读取。

标签

条件判断常用

这篇内容是否清楚?