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

Làm cách nào để loại bỏ các hàng trùng lặp trong cơ sở dữ liệu MySQL của tôi? (Giữ cái có ID chính thấp nhất)

Một cái gì đó như thế này sẽ hoạt động:

DELETE FROM `table` 
WHERE `id` NOT IN (
    SELECT MIN(`id`) 
    FROM `table`
    GROUP BY `download_link`)

Để an toàn, trước khi chạy truy vấn xóa thực tế, bạn có thể muốn thực hiện một lựa chọn tương đương để xem những gì sẽ bị xóa:

SELECT * FROM `table` 
WHERE `id` NOT IN (
    SELECT MIN(`id`) 
    FROM `table`
    GROUP BY `download_link`)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mã lỗi MySQL 1235

  2. Buộc ngủ đông để tạo bảng sau khi thả và tạo lại cơ sở dữ liệu

  3. Magento:SQLSTATE [23000]:Vi phạm ràng buộc toàn vẹn:1062 Mục nhập trùng lặp '100000001' cho khóa 'UNQ_SALES_FLAT_ORDER_IN

  4. Cơ sở dữ liệu Python và MySQL:Giới thiệu thực tế

  5. lỗi 1206 bất cứ khi nào cố gắng xóa bản ghi khỏi bảng