我在一个表中有一个列,它可能包含空值或空值。我如何检查一个列是否为空或空的行中存在的表?
(e.g. null or '' or ' ' or ' ' and ...)
我在一个表中有一个列,它可能包含空值或空值。我如何检查一个列是否为空或空的行中存在的表?
(e.g. null or '' or ' ' or ' ' and ...)
当前回答
获取包含NULL, 0, ", '', ''的行
SELECT * FROM table WHERE some_col IS NOT TRUE;
获取没有NULL, 0, ", '', ''的行
SELECT * FROM table WHERE some_col IS TRUE;
其他回答
这将选择some_col为NULL或"(空字符串)的所有行
SELECT * FROM table WHERE some_col IS NULL OR some_col = '';
检查空值
$column is null
isnull($column)
检查是否为空
$column != ""
但是,你应该总是为列设置NOT NULL, mysql优化只能处理一个IS NULL级别
要么
SELECT IF(field1 IS NULL or field1 = '', 'empty', field1) as field1 from tablename
or
SELECT case when field1 IS NULL or field1 = ''
then 'empty'
else field1
end as field1 from tablename
我的意见。
在MySQL中,你可以使用COALESCE函数:
返回列表中的第一个非NULL值,如果没有非NULL值,则返回NULL。
所以你可以这样简化你的查询:
SELECT * FROM table WHERE COALESCE(some_col, '') = '';
如果数据类型为字符串且行为空,请尝试此操作
SELECT * FROM table WHERE column_name IS NULL OR column_name = ''
如果数据类型为int或列为0,则尝试此操作
SELECT * FROM table WHERE column_name > = 0