0

我有一个表userdata其中大部分字段为空,因此它基本上为 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

4 回答 4

2
SELECT SUM(IF(data IS NULL, 1, 0)) AS null_count FROM users
于 2012-07-11T15:35:39.760 回答
0

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

SELECT  COUNT(CASE WHEN data IS_NULL THEN 1 END) AS null_count
于 2012-07-11T15:28:14.330 回答
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)

查找未使用的字段(全部为空)

于 2012-07-11T15:28:21.073 回答
0

任何理由

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

不够?

于 2012-07-11T15:29:41.983 回答