There is a table user, and the fields are id, nick_name, password, email, and phone. 1. Single field (nick_name) Find all records with duplicate records select * from user where nick_name in (select nick_name from user group by nick_name having count(nick_name)>1); Find the record with the largest ID in each record group with duplicate records select * from user where id in (select max(id) from user group by nick_name having count(nick_name)>1); Find out the redundant records, but not the record with the smallest id select * from user where nick_name in (select nick_name from user group by nick_name having count(nick_name)>1) and id not in (select min(id) from user group by nick_name having count(nick_name)>1); Delete redundant duplicate records and keep only the record with the smallest id delete from user where nick_name in (select nick_name from (select nick_name from user group by nick_name having count(nick_name)>1) as tmp1) and id not in (select id from (select min(id) from user group by nick_name having count(nick_name)>1) as tmp2); 2. Multiple fields (nick_name, password) Find all the records with duplicate records select * from user where (nick_name,password) in (select nick_name,password from user group by nick_name,password where having count(nick_name)>1); Find the record with the largest ID in each record group with duplicate records select * from user where id in (select max(id) from user group by nick_name,password where having count(nick_name)>1); Find the redundant records in each duplicate record group, but do not find the one with the smallest ID. select * from user where (nick_name,password) in (select nick_name,password from user group by nick_name,password having count(nick_name)>1) and id not in (select min(id) from user group by nick_name,password having count(nick_name)>1); Delete redundant duplicate records and keep only the record with the smallest id delete from user where (nick_name,password) in (select nick_name,password from (select nick_name,password from user group by nick_name,password having count(nick_name)>1) as tmp1) and id not in (select id from (select min(id) id from user group by nick_name,password having count(nick_name)>1) as tmp2); The above is the detailed content of the implementation statements for MySQL data duplication checking and deduplication. For more information about MySQL data duplication checking and deduplication, please pay attention to other related articles on 123WORDPRESS.COM! You may also be interested in:
|
<<: A brief analysis of Linux resolv.conf
>>: Various correct postures for using environment variables in Webpack
This article shares the specific code for impleme...
Vue+iview menu and tab linkage I am currently dev...
The solution to the transparent font problem after...
In order to improve user experience and ease of us...
The function I want to achieve is to open a new w...
Virtual machines are very convenient testing soft...
Problem background: There is a requirement to tak...
The search performance from fastest to slowest is...
Preface The following are the ways to implement L...
Use the find command to find files larger than a ...
Table of contents 1 Introduction to the new opera...
<br />Previous article: Web Design Tutorial ...
1. Introduction When filtering unknown or partial...
How does "adaptive web design" work? It’...
Table of contents Preface 1. Binary Tree 1.1. Tra...