我的编程空间,编程开发者的网络收藏夹
学习永远不晚

数据库之MySQL查询去重数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据库之MySQL查询去重数据

最近遇到了一个问题,当时我的第一反应是导出来,用wps的Excel表格的删除重复项的功能,简单粗暴又直接,但是没有考虑到数据量太大的情况,会导致Excel打开缓慢。这个时候就考虑有没有更方便快捷的方法,网上也查询了很多方法,但是实践出真知,还是要实践之后才能得到真相。 

 

 开始实践:

先创建一个拥有重复数据的表。

 方法一:使用DISTINCT过滤重复数据

直接查询age字段,会输出所有数据,包含重复项。

 DISTINCT 关键字指示 MySQL 消除重复的记录值

SELECT DISTINCT <字段名> FROM <表名>;

 可以看到消除了重复项,使用distinct可行。

使用 DISTINCT 关键字时需要注意以下几点:

DISTINCT 关键字只能在 SELECT 语句中使用。

在对一个或多个字段去重时,DISTINCT 关键字必须在所有字段的最前面。

如果 DISTINCT 关键字后有多个字段,则会对多个字段进行组合去重,也就是说,只有多个字段组合起来完全是一样的情况下才会被去重。

方法二:group by

GROUP BY 语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

select 重复的字段名 from 表名  group by 重复的字段名;

group by 对age查询结果进行了分组,自动将重复的项归结为一组。

 还可以使用count函数,统计重复的数据有多少个。

方法三: row_number窗口函数

oracle等数据库中可以方便的使用row_number函数,实现分组取组内特定数据的功能。但是MySQL中并没有引入类似的函数。为了实现这一功能,需要一些特别的处理。

row_number() over (partition by <用于分组的字段名> order by <用于组内排序的字段名>)

select * from (select t.*,row_number() over(partition by t.children_id  order by t.update_time DESC) rn       
from mdm_data_authority_view_info t where t.DATA_CLASS_ID = '分类id' AND t.DATA_ROLE_ID 
IN ( '角色id', '角色id' ))              
where rn = 1;  
 

 

来源地址:https://blog.csdn.net/qq_32393893/article/details/126850270

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

数据库之MySQL查询去重数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL数据库学习之去重与连接查询详解

目录1.去重2.连接查询使用where进行多表连接查询内连接 - 等值连接内连接 - 非等值连接内连接 - 自连接外连接 - 左右外连接三表连接1.去重示例表内容参考此文章有些 mysql 数据表中可能存在重复的记录,有些情况我们允许重
2022-07-24

Node.js数据库操作之查询MySQL数据库(二)

前言 我们在上一篇文章《Node.js数据库操作之连接MySQL数据库(一)》中已经学习了Nodejs连接MySQL数据库的几种方法,数据库连接上了之后就需要对数据库进行查询。本篇文章介绍一下查询MySQL数据库的方法。下面话不多说,来看看
2022-06-04

MySQL数据库查询之多表查询总结

最近遇到了多表查询的需求,也称为关联查询,指两个或更多个表一起完成查询操作,下面这篇文章主要给大家介绍了关于MySQL数据库查询之多表查询的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-11-13

数据库查询去重的方法是什么

数据库查询去重的方法有以下几种:1. 使用DISTINCT关键字:在SELECT语句中使用DISTINCT关键字可以去除查询结果中的重复行。例如:SELECT DISTINCT 列名 FROM 表名;2. 使用GROUP BY子句:使用GR
2023-09-23

MySQL查询重复数据

假设有一个用户表 user,数据如下:1、查询表中 uid 重复的数据SELECT id, uid, nameFROM USERWHERE uid IN (SELECT uid FROM USER GROUP BY uid HAVING CO
MySQL查询重复数据
2018-06-05

MySQL 数据库查询数据,过滤重复数据保留一条数据-

转自: http://www.maomao365.com/?p=10564  摘要: 下文讲述MySQL数据库查询重复数据时,只保留一条数据的方法 实现思路: 在MySQL数据库中没有row_number函数,所以我们需变向实现此功能。 --1.基础数据
MySQL 数据库查询数据,过滤重复数据保留一条数据-
2021-10-02

MySQL数据库之怎么联合查询

这篇文章主要介绍了MySQL数据库之怎么联合查询的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL数据库之怎么联合查询文章都会有所收获,下面我们一起来看看吧。前言:将多个查询结果的结果集合并到一起(纵向合
2023-06-30

mysql查询去重复数据的方法是什么

在MySQL中,可以使用DISTINCT关键字来查询去重复数据。例如,假设有一个名为"employees"的表,包含以下数据:+----+-------+--------+| id | name | salary |+----+-
mysql查询去重复数据的方法是什么
2024-04-09

mysql数据库怎么查询数据的

在 mysql 中查询数据,可以使用 select 语句,语法:select 列名from 表名where 条件;可选参数包括 distinct(去除重复记录)、limit(限制记录数)、group by(分组)和 having(分组后过滤
mysql数据库怎么查询数据的
2024-04-22

mongodb怎么查询去重后的数据

在MongoDB中,可以使用聚合操作来查询去重后的数据。具体步骤如下:使用$group操作符对数据进行分组,在分组操作中使用$addToSet操作符来将字段值添加到一个集合中,实现去重。db.collection.aggregate([{$
mongodb怎么查询去重后的数据
2024-05-22

编程热搜

目录