我在一个表中有一个列,它可能包含空值或空值。我如何检查一个列是否为空或空的行中存在的表?

(e.g. null or '' or '  ' or '      ' and ...)

当前回答

下面的SQL查询工作正常。

SELECT * FROM <table-name> WHERE <column-name> IS NULL;

其他回答

我讨厌数据库中杂乱的字段。如果列可能是一个空白字符串或null,我宁愿在每次执行选择之前修复这个问题,像这样:

UPDATE MyTable SET MyColumn=NULL WHERE MyColumn='';
SELECT * FROM MyTable WHERE MyColumn IS NULL

这可以保持数据整洁,只要您不需要出于某种原因特别区分NULL和empty。

SELECT * FROM tbl WHERE trim(IFNULL(col,'')) <> '';

检查空值

$column is null
isnull($column)

检查是否为空

$column != ""

但是,你应该总是为列设置NOT NULL, mysql优化只能处理一个IS NULL级别

你也可以

SELECT * FROM table WHERE column_name LIKE ''

逆存在

SELECT * FROM table WHERE column_name NOT LIKE ''

这句话对我来说更清晰更易读:

select * from my_table where ISNULL(NULLIF(some_col, ''));