Mysql
 sql >> база данни >  >> RDS >> Mysql

Кой е най-добрият начин за изтриване на дублиращи се стойности от MySQL Table?

Първо, може да опитате да добавите индекси към полетата ProgramName и CustID, ако все още нямате такива.

Дупинг

Можете да групирате вашите записи, за да идентифицирате измамници и докато правите това, вземете стойността на min ID за всяка група. След това просто изтрийте всички записи, чиито ID не е един от MinID.

Метод в клауза

delete from
 ProgramsList
where
 id not in 
    (select min(id) as MinID
      from ProgramsList
      group by ProgramName, CustID) 

Метод на присъединяване

Може да се наложи да стартирате това повече от веднъж, ако има много членове на група.

DELETE P
FROM ProgramsList as P
INNER JOIN 
    (select count(*) as Count, max(id) as MaxID
     from ProgramsList
     group by ProgramName, CustID) as A on A.MaxID = P.id
WHERE A.Count >= 2

Някои хора имат проблеми с производителността с In-Clause, други не. Зависи много от вашите индекси и други подобни. Ако едното е твърде бавно, опитайте другото.

Свързано:https://stackoverflow.com/a/4192849/127880



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете втората най-висока стойност в MySQL таблица

  2. Mysql променливите не работят чрез php mysql заявка

  3. Използване на Oracle JDeveloper с MySQL Database Service на Oracle Cloud Platform, част 3

  4. Как да свържете колони с Laravel 4 Eloquent?

  5. Записване на специални символи в MySQL база данни