MySQL中distinct和count(*)的使用方法比较


Posted in MySQL onMay 26, 2021

首先对于MySQL的DISTINCT的关键字的一些用法:

1.在count 不重复的记录的时候能用到,比如SELECT COUNT( DISTINCT id ) FROM tablename;就是计算talbebname表中id不同的记录有多少条。

2,在需要返回记录不同的id的具体值的时候可以用,比如SELECT DISTINCT id FROM tablename;返回talbebname表中不同的id的具体的值。

3.上面的情况2对于需要返回mysql表中2列以上的结果时会有歧义,比如SELECT DISTINCT id, type FROM tablename;实际上返回的是 id与type同时不相同的结果,也就是DISTINCT同时作用了两个字段,必须得id与tyoe都相同的才被排除了,与我们期望的结果不一样。

4.这时候可以考虑使用group_concat函数来进行排除,不过这个mysql函数是在mysql4.1以上才支持的。

5.其实还有另外一种解决方式,就是使用,SELECT id, type, count(DISTINCT id) FROM tablename,虽然这样的返回结果多了一列无用的count数据(或许你就需要这个我说的无用数据),返回的结果是只有id不同的所有结果和上面的4类型可以互补使用,就是看你需要什么样的数据了。
DISTINCT的效率:

SELECT id, type, count(DISTINCT id) FROM  tablename;虽然这样的返回结果多了一列无用的count数据(或许你就需要这个我说的无用数据),SELECT id, type from tablename group by id;这样貌似也可以,用distinct的时候,如果它有索引,mysql会把它转成group by的方式执行。

 MySQL数据库对于COUNT(*)的不同处理会造成不同的结果,比如,

  执行:SELECT COUNT(*) FROM tablename;即使对于千万级别的数据mysql也能非常迅速的返回结果。 
  执行: SELECT COUNT(*) FROM tablename WHERE…..;mysql的查询时间开始攀升。 

网上查资料得知:当没有WHERE语句对于整个mysql的表进行count运算的时候,MyISAM类型的表中保存有总的行数,而当添加有WHERE限定语句的时候Mysql需要对整个表进行检索,从而得出count的数值,因此加上where条件的查询速度就会很慢了。
以上关于MySQL数据库的distinct以及count(*)的使用就介绍到这里了,希望本次的介绍能够带给您一些收获。

MySQL 相关文章推荐
mysql字符串截取函数小结
Apr 05 MySQL
MySQL主从复制断开的常用修复方法
Apr 07 MySQL
.Net Core导入千万级数据至Mysql的步骤
May 24 MySQL
简单了解 MySQL 中相关的锁
May 25 MySQL
MySQL 常见存储引擎的优劣
Jun 02 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
Mysql忘记密码解决方法
Feb 12 MySQL
MySQL之MyISAM存储引擎的非聚簇索引详解
Mar 03 MySQL
mysql性能优化以及配置连接参数设置
May 06 MySQL
mysql实现将字符串字段转为数字排序或比大小
Jun 14 MySQL
关于mysql中string和number的转换问题
Jun 14 MySQL
Mysql中mvcc各场景理解应用
Aug 05 MySQL
MySQL中出现乱码问题的终极解决宝典
如何设计高效合理的MySQL查询语句
May 26 #MySQL
虚拟机linux端mysql数据库无法远程访问的解决办法
May 26 #MySQL
正确使用MySQL INSERT INTO语句
May 26 #MySQL
正确使用MySQL update语句
May 26 #MySQL
详解MySQL集群搭建
MySQL中VARCHAR与CHAR格式数据的区别
May 26 #MySQL
You might like
德劲1103的维修打理经验
2021/03/02 无线电
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
js闭包实例汇总
2014/11/09 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
python利用datetime模块计算时间差
2015/08/04 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
python实现比较文件内容异同
2018/06/22 Python
详解Django中间件执行顺序
2018/07/16 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
报关简历自我评价怎么写
2013/09/19 职场文书
会计专业毕业生自我鉴定
2013/10/29 职场文书
大专毕业生自我鉴定
2013/11/21 职场文书
2014年最新学习全国两会精神心得
2014/03/17 职场文书
幼儿园老师寄语
2014/04/03 职场文书
幼儿发展评估方案
2014/06/11 职场文书
学校工作推荐信范文
2014/07/11 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
感谢信模板大全
2015/01/23 职场文书
标枪加油稿
2015/07/22 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
股权投资协议书
2016/03/23 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP
讨论nginx location 顺序问题
2022/05/30 Servers