Char(0) 列上的 count(id) 不起作用!

Ali*_*eza 3 mysql-5

可能的重复:
select count(*) 和 select count(any_non_null_column) 之间有什么区别?

我有一个类型为 char(0) 的列。有些行是NULL,有些是空的('')。问题是,当我运行以下查询时,结果将为 0。 SELECT count(id) FROM test WHERE id IS NULL

但是当我运行以下查询时,结果是正确的:SELECT count(*) FROM test WHERE id IS NULL

我有一个专栏,为什么会这样?

gbn*_*gbn 6

  • COUNT(somecolumn) 忽略 NULL
  • COUNT(*) 不会

你可以看到这个

SELECT count(id),count(*) FROM test WHERE id IS NULL
Run Code Online (Sandbox Code Playgroud)

巧合的是,所有聚合函数都忽略 NULL,除了 COUNT(*)