使用 WHERE 和 COUNT 在 sql 查询中返回错误值

Wrong value returned in sql query using WHERE and COUNT

我有一个名为 category_id 的列,值可以是数字或空值(每行 123 或空值)。我必须 select 具有空值的类别 ID 的总数 (COUNT) 使用:

SELECT COUNT(category_id) 
FROM products 
WHERE category_id = NULL;

返回 0(错误值)。

试试这个:

SELECT COUNT(category_id) FROM products WHERE category_id IS NULL;

NULL 值无法通过“=”运算符进行比较,因此请使用 'IS' 关键字而不是“=”

在 where 子句中使用 category_id IS NULL 而不是 category_id= NULL

COUNT是一个聚合函数的例子,你需要使用GROUP BY 试试这个:

SELECT COUNT(category_id) AS n FROM products WHERE category_id IS NULL GROUP BY category_id

只需像这样将 IS NULLcategory_id 一起使用

SELECT COUNT(category_id) 
FROM products 
WHERE category_id IS NULL;

Count(category_id) 只会计算 category_id 不为空的记录。 要与 NULL 进行比较,SQL 语法是 "IS NULL",而不是“= NULL”。

计算总使用量:

SELECT COUNT(1) FROM products WHERE category_id IS NULL ;