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 Show Profile
Apr 05 MySQL
SQL注入的实现以及防范示例详解
Jun 02 MySQL
Mysql实现主从配置和多主多从配置
Jun 02 MySQL
MySQL Shell import_table数据导入的实现
Aug 07 MySQL
MySQL8.0升级的踩坑历险记
Nov 01 MySQL
关于mysql中时间日期类型和字符串类型的选择
Nov 27 MySQL
MySQL如何快速创建800w条测试数据表
Mar 17 MySQL
浅谈redis的过期时间设置和过期删除机制
Mar 18 MySQL
MYSQL优化之数据表碎片整理详解
Apr 03 MySQL
MySQL创建管理LIST分区
Apr 13 MySQL
Mysql开启外网访问
May 15 MySQL
MySQL存储过程及语法详解
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
用PHP和ACCESS写聊天室(六)
2006/10/09 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
php通过各种函数判断0和空
2020/07/04 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
jQuery 局部div刷新和全局刷新方法总结
2016/10/05 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
jQuery pjax 应用简单示例
2018/09/20 jQuery
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
python多线程下信号处理程序示例
2019/05/31 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
详解pycharm自动import所需的库的操作方法
2020/11/30 Python
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
平面设计岗位职责
2013/12/14 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
颐和园导游词400字
2015/01/30 职场文书
邀请函样本
2015/02/02 职场文书
2015年手术室工作总结
2015/05/11 职场文书
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs
高通2023 年将发布高性能PC处理器
2022/04/29 数码科技