当前位置: 首页 > news >正文

MySQL中去重 distinct 和 group by 是如何去重的

1:测试数据

CREATE TABLE student (stu_no  VARCHAR(40) NOT NULL,name VARCHAR(100) NOT NULL
);insert into  student values('1','name1');
insert into  student values('2','name2');
insert into  student values('3','name1');
insert into  student values('4','name2');
insert into  student values('5','name1');

 测试1:对name 字段进行过滤

SELECT DISTINCT `name` FROM student;

 测试2:对所有的字段进行去重。

SELECT DISTINCT * FROM student;

 

对比测试1和测试2 发现,

distinct 可以对单一字段进行去重,当对所有的字段去重时,只有不同数据的每个字段完全一样的数据被去掉,其他只有一个字段重复的数据并没有变化,因此得出结论:

distinct主要是针对全部字段去重,即去掉完全一样的数据。、

测试3:

select stu_no,name from student group by name;
select stu_no,name from student group by stu_no;

 

 

总结:

    相同:distinct和group by都可以用来去重
    不同之处,distinct针对全部字段去重,而group by可以针对全部字段中的单一字段去重。
    两者执行方式不同,distinct主要是对数据两两进行比较,需要遍历整个表。group by分组类似先建立索引再查索引,当数据量较大时,group by速度要优于distinct。
 

http://www.lryc.cn/news/67612.html

相关文章:

  • 在职读研是理想还是情怀?你想要的都将在社科大能源管理硕士项目实现
  • 携手共建数字钢铁,Hightopo亮相第三届钢铁展洽会
  • Leetcode2383. 赢得比赛需要的最少训练时长
  • js代码执行过程、调用栈、执行上下文
  • 互联网摸鱼日报(2023-05-12)
  • 【Python从入门到实践3.1】扑克发牌知识点(range函数,def函数,else语句配合使用,random库,列表推导式)
  • Spring Cloud第二季--Spring Cloud Bus
  • Unittest自动化测试之unittestunittest_生成测试报告
  • 一个查询IP地理信息和CDN提供商的离线终端工具
  • RflySim平台使用篇 | Rflysim3D软件使用系列教程(二)
  • 2023 年第五届河南省 CCPC 大学生程序设计竞赛
  • nginx liunx最新版本安装flask部署
  • 热图 -- pheatmap or ggplot2
  • EIScopus检索 | 2023年智能交通与未来出行国际会议(CSTFM 2023)
  • 如何系列 如何在Windows和Linux安装Nginx
  • “1+X+N”模式助力企业数字化转型
  • JavaEE(系列3) -- 多线程(线程的中断与线程等待)
  • 想装一台自己的电脑,可以先了解下这些问题
  • Redis未授权漏洞复现
  • 跳槽,如果没有更好的选择,可以去美团试试···
  • Java10
  • IMS call通话类型对比差异
  • 5.2 中心极限定理
  • JVM 内存分哪几个区,如和判断一个对象是否存活
  • 在Spring Boot微服务使用Jedis操作Redis List列表
  • springboot + vue 部署 阿里云云服务器 ECS
  • mysql 日期 计算 时间差 天数差
  • 不用网闸、FTP的话 如何实现内外网数据交换?
  • 探寻Spring MVC的奥秘:内部组件与工作流程详解
  • eclipse svn ClassNotFoundException: javassist.ClassPool