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

Изтриване на дублиращи се редове с sql

Опитайте първо да изберете дубликатите, след което ги изтрийте

DELETE FROM usa_city WHERE city_id IN
(
SELECT city_id FROM usa_city
GROUP BY city_name, id_state
HAVING count(city_id) > 1
)

Надявам се да помогне!!!

МОДИФИЦИРАНО:Въз основа на коментара, ако искате да запазите един запис , можете да направите присъединяване и да запазите най-ниската стойност

DELETE c1 FROM usa_city c1, usa_city c2 WHERE c1.id < c2.id AND 
(c1.city_name= c2.city_name AND c1.id_state = c2.id_state)

Не забравяйте да направите резервно копие, преди да изпълните заявката по-горе...



  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-python с pip install в OSX, virtualenv

  2. Причина за неправилно конфигурирана MySQL:опасно използване на относителен път

  3. Как да променя сортирането на Mysql на турски?

  4. 12 Най-добри практики за сигурност на MySQL/MariaDB за Linux

  5. Подобряване на производителността на пространствената MySQL заявка