sql >> Database >  >> RDS >> Mysql

Dubbele SQL-records verwijderen om een ​​unieke sleutel toe te staan

In antwoord op uw opmerking, hier is een vraag die werkt in MySQL:

delete YourTable
from YourTable
inner join YourTable yt2
on YourTable.product_id = yt2.product_id
and YourTable.id < yt2.id

Dit zou alleen dubbele rijen verwijderen. De inner join filtert de laatste rij voor elk product, zelfs als er geen andere rijen voor hetzelfde product bestaan.

PS Als u de tabel probeert te aliasen na FROM , MySQL vereist dat je de naam van de database specificeert, zoals:

delete <DatabaseName>.yt
from YourTable yt
inner join YourTable yt2
on yt.product_id = yt2.product_id
and yt.id < yt2.id;


  1. Binaire gegevens invoegen in MySQL (zonder PreparedStatement's)

  2. Python MySQLdb herhaalt de tabel

  3. SQL Server 2016 op Linux

  4. JQuery Datatable - Enkele cel splitsen in meerdere kolommen voor leesbaarheid?