例如,在下面的图片中,我有一个名为students
的简单表。有些学生的GPA = NULL。
我有一个查询来计算DISTINCT GPA值:
SELECT count( DISTINCT GPA ) FROM `students`
结果,正如所料,2。
但是,我想,我可以使用PHP,只需写:
SELECT DISTINCT GPA FROM `students`
但为什么结果是3行(不是预期的2行)?
答案 0 :(得分:2)
Count函数定义为忽略NULL值。 选择DISTINCT行时,会考虑NULL。这就是为什么你得到3行。这是设计的。 请参阅COUNT的文档:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_count