无法计算表的列中的no:of NULL单元格

时间:2012-07-11 15:26:41

标签: php mysql sql

我有一个表user,其列data,其中大部分字段为空,因此基本上为NULL。我想计算该列中存在数据的no:行。

一种方式:所以我认为我可以计算no:NULL字段并从总行中减去。

另一种方式:我可以直接计算占用的字段(但我显然不知道)。所以我为第一种方法编写了这个....但它给出的计数是0.它无法识别NULL或其他什么。

$sql = "SELECT COUNT(CASE WHEN data = '' THEN 1 END) AS null_count, FROM users";
$real= mysql_query($sql);
while($row = mysql_fetch_assoc($real)) {
            echo "null Count: {$row['null_count']}". '<br />';
}

4 个答案:

答案 0 :(得分:2)

SELECT SUM(IF(data IS NULL, 1, 0)) AS null_count FROM users

答案 1 :(得分:0)

您必须使用IS NULL,因为NULL不等于空字符串。它甚至不等于NULL

SELECT  COUNT(CASE WHEN data IS_NULL THEN 1 END) AS null_count

答案 2 :(得分:0)

要找到非空的,请这样做:

SELECT
   COUNT(CASE WHEN len(data) > 0 THEN 1 else 0 END) AS not_empty_or_null_count,
FROM
    users

如果您不想计算具有所有空格的项目,可以在len()之前调用数据上的trunc()

类似的问题(对于SQL Server)

Find fields that aren't used (have all nulls)

答案 3 :(得分:0)

任何原因

select count(field) from table where field is not null;

是不够的?