IFNULL函数

IFNULL(表达式_1 ,表达式_2 )。

表达式_1 为空,请重试表达式_2 表达式_1 不为 NULL,返回表达式_1
2 02 3 年,北京,测试: 选择 IFNULL(NULL, 1 00);返回 C^ 选择 IFNULL(2 00, 1 00);返回2 00。

IFNULL没有耳朵,不是空结果。

MySQL查询字段为空时替换(补充)为0

不幸的是,在 MySQL 中很容易用 0 替换空字段。
使用 IFNULL 函数,这就是这个家伙所做的。
当它查看时,如果你的字段值为NULL,它会返回一个分配给你的数字,通常是0。

让我们举个例子。
例如,在 2 02 2 年,有一个名为 A 市的城市。
他们有一个名为 sales 的表和一个名为 amount 的字段。
你想检查金额,如果没有值那么你希望它显示为0。
那么你的SQL语句应该这样写:
sql SELECT IFNULL(金额, 0) AS 销售金额;
这行代码表示,如果 amount 字段为 NULL,我就给你 0。

嘿,还有别的事情。
如果您遇到十进制类型并且不希望它自动填充零,则可以使用 CAST 或 CONVERT 来更改类型,但这与将 NULL 替换为 0 无关。

或者,如果您有字符串类型或整数类型并且希望将空字符串或特定值视为空,则可以使用 CASE 语句或 IF 函数。
然而,这两者与IFNULL并不相同。

例如,数量字段有时可能是空字符串,您也希望将其视为 NULL。
那么你可以这样写:
sql SELECT CASE WHEN amount='' OR amount NOT THEN 0 ELSE CAST(amount AS DECIMAL(1 0, 2 )) END AS amount FROM sales;

sql SELECT IF(金额='', 0, CAST(金额 AS DECIMAL(1 0, 2 ))) AS 销售额;
就是这样,处理得非常工整。
请记住,使用 IFNULL 时,必须确保 expr2 的值与 expr1 的数据类型兼容。
如果您正在处理空字符串,IFNULL 将不起作用,因此您必须找到另一种方法。