我在一个表中有一个列,它可能包含空值或空值。我如何检查一个列是否为空或空的行中存在的表?
(e.g. null or '' or ' ' or ' ' and ...)
我在一个表中有一个列,它可能包含空值或空值。我如何检查一个列是否为空或空的行中存在的表?
(e.g. null or '' or ' ' or ' ' and ...)
当前回答
检查空值
$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
另一种方法没有WHERE,试试这个..
将选择空值和空值
SELECT ISNULL(NULLIF(fieldname,'')) FROM tablename
如果你想在做ORDER BY时最后呈现NULL值,试试这个:
SELECT * FROM my_table WHERE NULLIF(some_col, '') IS NULL;
在我的项目中检查一个列的空值或空值时,我注意到在各种数据库中存在一些支持问题。
不是每个数据库都支持TRIM方法。
下面是一个矩阵,只是为了了解不同数据库支持的方法。
SQL中的TRIM函数用于从字符串中删除指定的前缀或后缀。最常被删除的模式是空白。这个函数在不同的数据库中调用方式不同:
MySQL:修剪(),r修剪(),LTRIM() 神谕:RTRIM(), LTRIM() SQL服务器:RTRIM(), LTRIM()
如何检查空/空:-
下面是两种不同的方法根据不同的数据库-
这些trim函数的语法如下:
使用Trim检查- SELECT FirstName FROM UserDetails WHERE TRIM(LastName)为空 使用LTRIM和RTRIM检查- SELECT FirstName FROM UserDetails WHERE LTRIM(RTRIM(LastName))为空
以上两种方法提供相同的结果,只是基于您的数据库支持使用。它只是从UserDetails表返回FirstName,如果它有一个空的LastName
希望这对你有所帮助:)
如果数据类型为字符串且行为空,请尝试此操作
SELECT * FROM table WHERE column_name IS NULL OR column_name = ''
如果数据类型为int或列为0,则尝试此操作
SELECT * FROM table WHERE column_name > = 0