1 用一个例子来讲解一个问题,现在又一个库表hello,表内容如下:
id name
1 Null
2 Null
3 Null
4 Null
5 Null
hello表一共两个字段:id和name,name is null。 www.2cto.com
第一条SQL:SELECT COUNT(id) FROM hello; 查询结果:5,正确。
第二条SQL:SELECT COUNT(*) FROM hello; 查询结果:5,正确。
第三条SQL:SELECT COUNT(name) FROM hello; 查询结果:0,错误。
第四条SQL:SELECT COUNT(DISTINCT id,name) FROM hello;查询结果:0,错误。
2 第二条SQL和第三条SQL查询错误的原因:
2.1 COUNT(), MIN(), and SUM() ignore NULL values.
2.2 The exception to this is COUNT(*), which counts rows and not individual column values.
2.3 For example, the following statement produces two counts. The first is a count of the number of rows in the table, and the second is a count of the number of non-NULL values in the age column:
mysql> SELECT COUNT(*), COUNT(age) FROM person;
--转自