MySQL中NULL表示“未知”或“不存在的值”,需用IS NULL/IS NOT NULL判断,不可用=;可用IFNULL()、COALESCE()替换,聚合函数自动忽略NULL,建表时可通过DEFAULT或NOT NULL约束控制。
MySQL中NULL代表“未知”或“不存在的值”,它不是0、空字符串或空格,而是一种特殊的标记。直接用等号(=)判断NULL会返回NULL(即逻辑上“未知”),所以必须使用专门的NULL操作符和函数来处理。
这是最基础也最关键的用法。WHERE子句中不能写 column = NULL,而要写:
例如:SELECT * FROM users WHERE phone IS NULL; 可找出未填写手机号的用户。
当需要把NULL转为默认值(如0、'未知'、当前时间等),推荐用这两个函数:
示例:SELECT name
, COALESCE(phone, email, '暂无联系方式') AS contact FROM users;
COUNT()、SUM()、AVG()、MIN()、MAX() 在计算时默认跳过NULL值:
注意:如果整列都是NULL,SUM/AVG会返回NULL,不是0,必要时需配合COALESCE处理。
建表时可通过 DEFAULT 或 NOT NULL 约束控制NULL行为: