日期:2014-05-16  浏览次数:20792 次

mysql count distinct null 使用注意事项

1  用一个例子来讲解一个问题,现在又一个库表hello,表内容如下:

id     name

1      Null
2      Null
3      Null
4      Null
5      Null

hello表一共两个字段:id和name,name is null。

第一条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;