Home  >  Article  >  Database  >  How to delete duplicate records in mysql database?

How to delete duplicate records in mysql database?

青灯夜游
青灯夜游Original
2020-09-03 13:18:5612702browse

Mysql steps to delete duplicate records in the database: first count duplicate data; then use the "SELECT DISTINCT" statement to filter duplicate data; finally add INDEX and PRIMAY KEY to the data table to delete duplicate records in the table .

How to delete duplicate records in mysql database?

For regular MySQL data tables, there may be duplicate data. In some cases, duplicate data is allowed, and in some cases it is not allowed. At this time we You need to find and delete these duplicate data. The following is the specific processing method!

Related learning recommendations: mysql tutorial (video)

Method 1: Prevent duplicate data from appearing in the table

When no data is added to the table, you can set the specified field in the MySQL data table as a PRIMARY KEY (primary key) or UNIQUE (***) index to ensure the integrity of the data. .

For example, the student number no is not allowed to be repeated in the student information table. The student number no needs to be set as the primary key, and the default value cannot be NULL.

CREATE TABLE student 
( 
no CHAR(12) NOT NULL, 
name CHAR(20), 
sex CHAR(10), 
PRIMARY KEY (no) 
);

Method 2: Filter and delete duplicate values

For the original data in the data table, if you want to remove duplicate data, you need to go through a duplicate data search , filtering and deletion steps.

1. Count duplicate data

mysql> SELECT COUNT(*) as repetitions,no 
-> FROM student 
-> GROUP BY no 
-> HAVING repetitions > 1;

The above query statement will return the number of duplicate records in the student table.

2. Filter duplicate data

If you need to read non-duplicate data, you can use the DISTINCT keyword in the SELECT statement to filter duplicate data.

mysql> SELECT DISTINCT no 
-> FROM student;

You can also use GROUP BY to read non-duplicate data in the data table

mysql> SELECT no 
-> FROM student 
-> GROUP BY (no);

3. Delete duplicate data

Delete the data in the data table For duplicate data, you can use the following SQL statement:

mysql> CREATE TABLE tmp SELECT no, name, sex FROM student GROUP BY (no, sex); 
mysql> DROP TABLE student; 
mysql> ALTER TABLE tmp RENAME TO student;

You can also add INDEX (index) and PRIMAY KEY (primary key) to the data table to delete duplicate records in the table. The method is as follows:

mysql> ALTER IGNORE TABLE student 
-> ADD PRIMARY KEY (no);

This article comes from the php中文网mysql graphic tutorial channel, welcome to learn!

The above is the detailed content of How to delete duplicate records in mysql database?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn