MySQL NULL 值处理学习笔记
什么是NULL值?
在MySQL中,NULL表示一个缺失的值。它与空字符串''不同。
如果未将列初始化为任何值,或者将其设置为NULL,则该列将包含NULL值。
如何判断NULL值?
在MySQL中,我们不能使用等于(=)或不等于(<>)操作符来检查NULL值。
正确的方法是使用IS NULL或IS NOT NULL:
Copy CodeSELECT * FROM my_table WHERE column_name IS NULL;
SELECT * FROM my_table WHERE column_name IS NOT NULL;
如何处理NULL值?
在MySQL中,我们可以使用IFNULL()函数来处理NULL值。
IFNULL()函数接受两个参数,如果第一个参数不为空,则返回第一个参数,否则返回第二个参数。
例如,假设我们有一个名为age的列,其中包含一些空值。我们可以使用IFNULL()函数将空值替换为0:
Copy CodeSELECT name, IFNULL(age, 0) as age FROM my_table;
实例
下面是一个实例,展示了如何在MySQL中处理NULL值:
Copy Code-- 创建一个带有 NULL 值的表
CREATE TABLE my_table (
id INT,
name VARCHAR(50),
age INT
);
INSERT INTO my_table VALUES (1, 'Alice', NULL), (2, 'Bob', 25), (3, 'Charlie', NULL), (4, 'David', 30);
-- 查询年龄的平均值,将 NULL 值替换为 0
SELECT AVG(IFNULL(age, 0)) as avg_age FROM my_table;
此查询将返回所有人的平均年龄,其中空值被视为零。
总结
在MySQL中,NULL表示缺少值。我们可以使用IS NULL和IS NOT NULL操作符来检查列是否包含NULL值,并使用IFNULL()函数来处理NULL值。