sql >> Database teknologi >  >> RDS >> Mysql

Fjernelse af dublerede SQL-poster for at tillade en unik nøgle

Som svar på din kommentar er her en forespørgsel, der virker i MySQL:

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

Dette ville kun fjerne duplikerede rækker. Den inner join vil bortfiltrere den seneste række for hvert produkt, selvom der ikke findes andre rækker for det samme produkt.

P.S. Hvis du forsøger at kalde tabellen efter FROM , MySQL kræver, at du angiver navnet på databasen, f.eks.:

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


  1. Sådan indstilles tegnsæt og sortering af en tabel i MySQL

  2. negere regex-mønster i mysql

  3. Hvordan kan jeg få en MySQL SUM-forespørgsel til at returnere nul i stedet for null, hvis der ikke er nogen poster?

  4. Kom godt i gang med GearHost til MySQL-databaseudvikling