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

Cách xóa các hàng trùng lặp khỏi bảng MySQL

DELETE DupRows.*
FROM MyTable AS DupRows
   INNER JOIN (
      SELECT MIN(ID) AS minId, col1, col2
      FROM MyTable
      GROUP BY col1, col2
      HAVING COUNT(*) > 1
   ) AS SaveRows ON SaveRows.col1 = DupRows.col1 AND SaveRows.col2 = DupRows.col2
      AND SaveRows.minId <> DupRows.ID;

Tất nhiên, bạn phải mở rộng col1, col2 ở cả ba vị trí cho tất cả các cột.

Chỉnh sửa:Tôi vừa lấy đoạn mã này ra khỏi tập lệnh tôi giữ và kiểm tra lại, nó thực thi trong MySQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WooCommerce:Tìm các sản phẩm trong cơ sở dữ liệu

  2. Chọn giá trị số gần nhất với truy vấn MySQL

  3. Python 3.4.0 với cơ sở dữ liệu MySQL

  4. 'tìm nạp' trong PDO chỉ nhận được một kết quả

  5. Lưu dấu trong Cơ sở dữ liệu MySQL