在MySQL中,空值(Empty String)和NULL是两个不同的概念:
''
。它是一个具体的值,占用空间。要查询某个字段为空值的记录,可以使用等号=
:
SELECT * FROM table_name WHERE column_name = '';
要查询某个字段为NULL的记录,可以使用IS NULL
关键字:
SELECT * FROM table_name WHERE column_name IS NULL;
IS NULL
而不是= NULL
?原因:在SQL中,NULL表示未知或缺失的值,它不是一个具体的值,因此不能使用等号=
进行比较。IS NULL
是专门用于检查NULL值的操作符。
可以使用OR
关键字:
SELECT * FROM table_name WHERE column_name = '' OR column_name IS NULL;
或者使用COALESCE
函数:
SELECT * FROM table_name WHERE COALESCE(column_name, '') = '';
假设我们有一个名为users
的表,其中有一个字段email
,我们想查询所有没有填写邮箱的用户(包括空值和NULL):
SELECT * FROM users WHERE email = '' OR email IS NULL;
或者使用COALESCE
函数:
SELECT * FROM users WHERE COALESCE(email, '') = '';
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云