mysql之count注意点

一、好言

笑,全世界便与你同声笑,哭,你便独自哭。

二、前言

最近做数据统计,测试反馈说多了一个数据,然后后台看发现用户id有的是null,有的是"",最后我统一把用户id改为"",结果由于这个用户id是新增的,insert的时候没有改sql,所以插入的userId都是null,测试说统计正确,然后我改完sql,用户id插入""后,测试反馈又多一条数据,我就纳闷了,难道是distinct的问题,经过实际测试,内容如下

三、内容。

select count(DISTINCT name) from test;

SELECT COUNT(*) FROM (SELECT DISTINCT NAME FROM test) t1

SELECT COUNT(1) FROM (SELECT DISTINCT NAME FROM test) t1

这三条sql得到的结果会有有什么区别么
先看看没有count的时候的数据


图片.png

那么我们认为这是有6条数据
(1)、那么看看下面这条sql查询结果

select count(DISTINCT name) from test;
图片.png

(2)、查看count(*)的结果

SELECT COUNT(*) FROM (SELECT DISTINCT NAME FROM test) t1
图片.png

(3)、查看count(1)的结果

SELECT COUNT(1) FROM (SELECT DISTINCT NAME FROM test) t1
图片.png

你可能感兴趣的:(mysql之count注意点)