当前位置:首页 > 数据库 > mysql查询重复的

mysql查询重复的

7个月前 (05-20)58

在数据开发时我们常常会需要把数据库中重复的记录查出来或直接删除数据库中重复记录,下面我来给大家总结一些方法,有需要的朋友可参考。

常用的语句

1、查找表中多余的重复记录,重复记录是根据单个字段(mail_id)来判断

代码如下

SELECT * FROM table WHERE mail_id IN (SELECT mail_id FROM table GROUP BY mail_id HAVING COUNT(mail_id) > 1);

2、删除表中多余的重复记录,重复记录是根据单个字段(mail_id)来判断,只留有rowid最小的记录

代码如下

DELETE FROM table WHERE mail_id IN (SELECT mail_id FROM table GROUP BY mail_id HAVING COUNT(mail_id) > 1) AND rowid NOT IN (SELECT MIN(rowid) FROM table GROUP BY mail_id HAVING COUNT(mail_id )>1);

3、查找表中多余的重复记录(多个字段)

代码如下

SELECT * FROM table WHERE (mail_id,phone) IN (SELECT mail_id,phone FROM table GROUP BY mail_id,phone HAVING COUNT(*) > 1);

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录

代码如下

DELETE FROM table WHERE (mail_id,phone) IN (SELECT mail_id,phone FROM table GROUP BY mail_id,phone HAVING COUNT(*) > 1) AND rowid NOT IN (SELECT MIN(rowid) FROM table GROUP BY mail_id,phone HAVING COUNT(*)>1);

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录

代码如下

SELECT * FROM table WHERE (a.mail_id,a.phone) IN (SELECT mail_id,phone FROM table GROUP BY mail_id,phone HAVING COUNT(*) > 1) AND rowid NOT IN (SELECT MIN(rowid) FROM table GROUP BY mail_id,phone HAVING COUNT(*)>1);

存储过程

代码如下

declare @max integer,@id integer

declare cur_rows cursor local for 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1

open cur_rows

fetch cur_rows into @id,@max

while @@fetch_status=0

begin

select @max = @max -1

set rowcount @max

delete from 表名 where 主字段 = @id

fetch cur_rows into @id,@max

end

close cur_rows

set rowcount 0

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

作者:weixin_39865866
来源链接:https://blog.csdn.net/weixin_39865866/article/details/113953847

标签: MySQL

“mysql查询重复的” 的相关文章

mysql压缩版的安装教程

mysql压缩版的安装教程

1.     首先创建 my.ini,在mysql解压目录下的bin文件夹中新建一个名为 my.ini 的文件,内容为 [client] port=3...

mysql安装教程5.1

mysql安装教程5.1

1.    下载的mysql安装文件,运行 mysql-5.1.62,出现如下界面;...

mysql 数据库 分表后 怎么进行分页查询?Mysql分库分表方案?

mysql 数据库 分表后 怎么进行分页查询?Mysql分库分表方案?

Mysql分库分表方案   1.为什么要分表: 当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的...

MySQL安装教程与配置

MySQL安装教程与配置

1、打开下载的mysql安装文件mysql-5.5.27-win32.zip,双击解压缩,运行“setup.exe”。 https://pan.ba...

使用淘宝中间件cobar实现mysql分库分表

cobar 编译安装配置笔记 https://github.com/alibaba/cobar windows下使用eclipse导入cobar项目,ecli...

笔记之MySQL下载安装教程(图文并茂)

笔记之MySQL下载安装教程(图文并茂)

记录MySQL的下载安装过程的笔记,不是很详细,有错或者有缺漏的地方欢迎大家指导,谢谢! 操作系统:windows10 64位 1、下载MyS...

mysql 查询某个值非空

1、什么是mysql中的空值,如下图所示 2、怎么查询呢? 需要用到is null 和is not null 下面是例子,不过只s...

Mysql安装教程:超简单

Mysql安装教程:超简单

Mysql安装教程:超简单 1.下载对应安装包: 下载地址https://dev.mysql.com/downloads/mysql/...

Docker系列之MySQL安装教程

Docker系列之MySQL安装教程

Docker系列之MySQL安装教程 有了前面的基础教程Docker系列之常用命令操作手册之后,本博客记录一篇mysql的安装教程 mysq...

MySQL5.5安装教程+SQLyog安装

MySQL5.5安装教程+SQLyog安装

一、MySQL的安装 自提链接:https://pan.baidu.com/s/1cKxIV1EAWE2eaYwwwZpOng  提取码:zwl1 1、...