Mysql delete duplicate data to keep the smallest id solution

Mysql delete duplicate data to keep the smallest id solution

Search online to delete duplicate data and keep the data with the smallest ID. The method is as follows:

DELETE
FROM
  people
WHERE
  peopleName IN (
    SELECT
      peopleName
    FROM
      people
    GROUP BY
      peopleName
    HAVING
      count(peopleName) > 1
  )
AND peopleId NOT IN (
  SELECT
    min(peopleId)
  FROM
    people
  GROUP BY
    peopleName
  HAVING
    count(peopleName) > 1
)

When I use it myself, an error message is displayed:

delete from tb where id in (SELECT max(id) from tb GROUP BY user HAVING count(user)>1)

[Err] 1093 - You can't specify target table 'XXX' for update in FROM clause

It is not known what caused it yet.

Then find a way to distribute the operation. First, filter out the data with duplicate users, and then use max() to select the larger row:

SELECT max(id) from tb GROUP BY user HAVING count(user)>1

Then delete the redundant data one by one according to the obtained max(id)

delete from tb where id=xx

This is a stupid method, let’s solve the problem temporarily.

Summarize

The above is the solution for Mysql to delete duplicate data and retain the smallest ID introduced by the editor. I hope it will be helpful to everyone. If you have any questions, please leave me a message and the editor will reply to you in time!

You may also be interested in:
  • Example and analysis of MySQL clearing data tables
  • MySQL query duplicate data (delete duplicate data and keep the one with the smallest id as the only data)
  • Detailed explanation of how to find and delete duplicate data in MySQL and keep only one example
  • Mysql implements regular clearing of old data in a table and retaining several pieces of data (recommended)

<<:  How to get the real path of the current script in Linux

>>:  Analysis of CocosCreator's new resource management system

Recommend

js implements clock component based on canvas

Canvas has always been an indispensable tag eleme...

Two ways to introduce svg icons in Vue

How to introduce svg icons in Vue Method 1 of int...

In-depth analysis of MySQL query interception

Table of contents 1. Query Optimization 1. MySQL ...

MySQL data loss troubleshooting case

Table of contents Preface On-site investigation C...

Specific usage of textarea's disabled and readonly attributes

disabled definition and usage The disabled attrib...

How to run Linux commands in the background

Normally, when you run a command in the terminal,...

Example of implementing colored progress bar animation using CSS3

Brief Tutorial This is a CSS3 color progress bar ...

How to use JS to implement waterfall layout of web pages

Table of contents Preface: What is waterfall layo...

Three commonly used MySQL data types

Defining the type of data fields in MySQL is very...

Installation tutorial of mysql5.7.21 decompression version under win10

Install the unzipped version of Mysql under win10...

Use overflow: hidden to disable page scrollbars

Copy code The code is as follows: html { overflow...