Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Xóa các hàng trùng lặp bằng sql

Trước tiên, hãy cố gắng chọn các bản sao, xóa chúng

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
)

Hy vọng nó sẽ giúp !!!

ĐÃ SỬA ĐỔI:Dựa trên nhận xét, nếu bạn muốn giữ một bản ghi , bạn có thể tham gia và giữ giá trị thấp nhất

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)

Đảm bảo sao lưu trước khi thực hiện truy vấn trên ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trợ giúp thiết kế truy vấn SQL nâng cao (Bản sao trên hai bảng, nhiều trường, có thể loại trừ dựa trên một trường)

  2. Truy vấn SQL vị trí địa lý không tìm thấy vị trí chính xác

  3. Kiểm tra NULL trên một Bộ sưu tập trong các truy vấn JPQL?

  4. Không thể lưu trữ biểu tượng cảm xúc trong cơ sở dữ liệu

  5. Không thể kết nối với MySQL từ xa bằng VB6 (10060)