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

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

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

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

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

看不清楚,换张图片

免费获取短信验证码

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

转自: http://www.maomao365.com/?p=10564  摘要:

下文讲述MySQL数据库查询重复数据时,只保留一条数据的方法 
实现思路:
在MySQL数据库中没有row_number函数,所以我们需变向实现此功能。
 

--1.基础数据表查看
mysql> select * from `maomao365.com`;
+-------+------------+
| keyId | infoB |
+-------+------------+
| 1 | mysql test |
| 129 | sql |
| 12913 | sql |
| 12913 | sql |
| 12913 | sql |
+-------+------------+
5 rows in set (0.00 sec)

---2 群组编号
mysql> select if(@keyId=a.keyId and @infoB=a.infoB,@r:=@r+1,@r:=1) as rowNumber,a.*,@keyId:=a.keyId,@infoB:=a.infoB
-> from (select @keyId:=null,@infoB:=null,@r:=0) r, (select keyId,infoB from `maomao365.com` order by keyId) a;
+-----------+-------+------------+-----------------+-----------------+
| rowNumber | keyId | infoB | @keyId:=a.keyId | @infoB:=a.infoB |
+-----------+-------+------------+-----------------+-----------------+
| 1 | 1 | mysql test | 1 | mysql test |
| 1 | 129 | sql | 129 | sql |
| 1 | 12913 | sql | 12913 | sql |
| 2 | 12913 | sql | 12913 | sql |
| 3 | 12913 | sql | 12913 | sql |
+-----------+-------+------------+-----------------+-----------------+
5 rows in set (0.00 sec)

---3 重复数据只显示一条
mysql> select * from (select if(@keyId=a.keyId and @infoB=a.infoB,@r:=@r+1,@r:=1) as rowNumber,a.*,@keyId:=a.keyId,@infoB:=a.infoB
-> from (select @keyId:=null,@infoB:=null,@r:=0) r, (select keyId,infoB from `maomao365.com` order by keyId) a
-> ) as t where t.rowNumber =1;
+-----------+-------+------------+-----------------+-----------------+
| rowNumber | keyId | infoB | @keyId:=a.keyId | @infoB:=a.infoB |
+-----------+-------+------------+-----------------+-----------------+
| 1 | 1 | mysql test | 1 | mysql test |
| 1 | 129 | sql | 129 | sql |
| 1 | 12913 | sql | 12913 | sql |
+-----------+-------+------------+-----------------+-----------------+
3 rows in set (0.00 sec)

 

定义临时变量 @keyId,@infoB
每次查询时 都重新对 @keyId,@infoB 赋值
在赋值前,都采用If对其进行判断,如果当前行记录信息和临时变量中的值相同时,则作为相同数据@r变量加1,否则@r变量变为1
采用以上模式,可以将重复的行记录进行编号

最后对重新编号后的记录,检索出row_number等于1的信息
  Mysql row_number函数实现方法

免责声明:

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

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

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

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

下载Word文档

猜你喜欢

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

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

MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据

很多东西都是需要自己一步一步的去探究的,当然网上的建议也是非常宝贵的借鉴和资源,无论做什么开发我们都需要理解它的工作原理才能够更好的掌握它。

mysql查询重复数据只保留一条怎么实现

要查询重复数据并保留一条唯一记录,可以使用以下步骤来实现:使用GROUP BY子句和聚合函数来找出重复数据,并只保留一条记录。使用HAVING子句来筛选出重复数据的记录。使用子查询或临时表来存储重复数据的记录,并通过主键或唯一索引来删除
mysql查询重复数据只保留一条怎么实现
2024-03-05

Mysql删除重复数据只保留一条

(1)以这张表为例: CREATE TABLE `test` ( `id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '注解id',
2023-08-16

Mysql 删除重复数据保留一条有效数据(最新推荐)

目录mysql 删除重复数据保留一条有效数据一、Mysql 删除重复数据,保留一条有效数据二、Mysql 删除重复数据(多个字段分组)三、Mysql 查询出可以删除的重复数据补充:mysql删除重复记录并且只保留一条MySql如何删除所有多
2023-02-06

mysql清理重复数据,并保留最新一条

背景 之前,数据是通过表单提交 后来增加了excel批量导入的功能,但是这个接口没有判断数据重复,覆盖更新 导致线上环境出现大量重复数据 如果要保证数据库不出现重复数据,可以添加唯一索引来限制 参考:Mysql重复数据查重保留一条(i
2023-08-16

MySQL怎样删除重复数据,只保留一条?

在实际工作开发过程中,常常会遇到数据库表中存在多条数据重复了,此时我们需要删除重复数据,只保留其中一条有效的数据; 针对这种场景,我们用SQL语句该怎么实现呢? 数据准备 建表语句: DROP TABLE IF EXISTS `test`;
2023-08-30

oracle去除重复数据并保留一条

一般用第二种方法即可。
oracle去除重复数据并保留一条
2019-04-16

Oracle数据库查询技巧:仅获取重复数据中的一条

Oracle数据库查询技巧:仅获取重复数据中的一条,需要具体代码示例在实际的数据库查询中,经常会遇到需要从重复数据中获取唯一一条数据的情况。本文将介绍如何利用Oracle数据库的技巧,实现仅获取重复数据中的一条记录的方法,并提供具体的代码
Oracle数据库查询技巧:仅获取重复数据中的一条
2024-03-08

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怎么过滤重复数据

本篇内容主要讲解“MySQL怎么过滤重复数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL怎么过滤重复数据”吧!方法1:加关键字 DISTINCT在mysql中,可以利用“SELECT
2023-07-06

MySQL通过DQL实现对数据库数据的条件查询

通过使用DQL,MySQL可进行条件查询,筛选满足特定条件的数据。条件查询使用WHERE子句,包含使用比较运算符、逻辑运算符和函数的表达式。通过优化措施,如使用索引和限制返回列数,可以提高条件查询性能。其他技巧包括使用LIMIT和ORDERBY来控制返回的行数和顺序,以及使用GROUPBY和HAVING对结果进行分组和筛选。
MySQL通过DQL实现对数据库数据的条件查询
2024-04-02

编程热搜

目录