我在一个表中有一个列,它可能包含空值或空值。我如何检查一个列是否为空或空的行中存在的表?
(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级别
其他回答
写条件的一种更简短的方法:
WHERE some_col > ''
因为null > "会产生unknown,所以它会过滤掉空字符串和空字符串。
如果数据类型为字符串且行为空,请尝试此操作
SELECT * FROM table WHERE column_name IS NULL OR column_name = ''
如果数据类型为int或列为0,则尝试此操作
SELECT * FROM table WHERE column_name > = 0
请注意:最好把它练习在答案的最后。
你可以使用WHERE col is null或WHERE col is not null来测试一个列是否为空。
SELECT myCol
FROM MyTable
WHERE MyCol IS NULL
在你的例子中,你有各种各样的空白排列。您可以使用TRIM删除空白,也可以使用COALESCE默认为NULL值(COALESCE将从您提供的值中返回第一个非空值。
e.g.
SELECT myCol
FROM MyTable
WHERE TRIM(COALESCE(MyCol, '')) = ''
最后一个查询将返回MyCol为空或任意长度的空白的行。
如果可以避免,最好不要在WHERE子句中的列上使用函数,因为这会使使用索引变得困难。如果你只是想检查一个列是空还是空,你最好这样做:
SELECT myCol
FROM MyTable
WHERE MyCol IS NULL OR MyCol = ''
更多信息请参见TRIM COALESCE和IS NULL。
同时使用MySQL文档中的空值
另一种方法没有WHERE,试试这个..
将选择空值和空值
SELECT ISNULL(NULLIF(fieldname,'')) FROM tablename
SELECT column_name FROM table_name WHERE column_name IN (NULL, '')