mysql怎么获取不重复的数据?

青灯夜游
发布: 2020-09-30 15:25:39
原创
12767人浏览过
在mysql中,可以在查询语句中添加distinct关键字来来过滤重复的记录,获取不重复的数据;语法“select distinct 字段名 from 数据表;”。

mysql怎么获取不重复的数据?

mysql获取不重复的数据的方法:

在查询语句中添加distinct关键字来来过滤重复的记录

语法:

select distinct 字段名 from 数据表;
登录后复制

distinct的作用

在mysql中,distinct关键字的主要作用就是对数据库表中一个或者多个字段重复的数据进行过滤,只返回其中的一条数据给用户,distinct只可以在select中使用

distinct的原理

distinct进行去重的主要原理是通过先对要进行去重的数据进行分组操作,然后从分组后的每组数据中去一条返回给客户端,在这个分组的过程可能会出现两种不同的情况:

  • distinct 依赖的字段全部包含索引:

    该情况mysql直接通过操作索引对满足条件的数据进行分组,然后从分组后的每组数据中去一条数据。

  • distinct 依赖的字段未全部包含索引:

    该情况由于索引不能满足整个去重分组的过程,所以需要用到临时表,mysql首先需要将满足条件的数据放到临时表中,然后在临时表中对该部分数据进行分组,然后从临时表中每个分组的数据中去一条数据,在临时表中进行分组的过程中不会对数据进行排序。

distinct的用法

distinct的使用语法是这样的:

select distinct expression[,expression...] from tables [where conditions];
登录后复制

在使用distinct的过程中主要注意一下几点:

  • 在对字段进行去重的时候,要保证distinct在所有字段的最前面

    降重鸟
    降重鸟

    要想效果好,就用降重鸟。AI改写智能降低AIGC率和重复率。

    降重鸟 113
    查看详情 降重鸟
  • 如果distinct关键字后面有多个字段时,则会对多个字段进行组合去重,只有多个字段组合起来的值是相等的才会被去重

下面我们通过在开发过程中经常遇到的一些关于distinct的实例来加深大家对该关键字用法的理解:

数据库表结构和数据如下图所示:

1.png

对单个字段进行去重sql:

select distinct  age from user;
登录后复制

查询结果

age
10
20
30
登录后复制

对多个字段进行去重sql:

select distinct name,age from user;
登录后复制

查询结果

nameage
One10
Zero20
Two20
Four30
One30
登录后复制

对多个字段进行去重并求count的sql:

select count(distinct name,age) as total from user;
登录后复制

查询结果

total
5
登录后复制

对select * 进行去重

select distinct * from user;
登录后复制

由于 * 代表所有字段,所以该sql和 select distinct id,name,age,sign from user 语义相同

查询结果:

id		name	age		sign
1		One		10		梦想要有的,万一实现了呢
2		Zero	20		http://www.chaoshizhushou.com
3		Two		20		OneZeroTwoFour
4		Four	30		加油
5		One		30		学习才是硬道理
6		Four	30		一日三省吾身
登录后复制

推荐教程:mysql视频教程

以上就是mysql怎么获取不重复的数据?的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号