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

MySql:loại bỏ các hàng trong bảng tùy thuộc vào các giá trị trùng lặp của cột?

Tôi nghĩ bạn chỉ cần thử thêm một CHỈ SỐ DUY NHẤT bằng cách sử dụng BỎ QUA:

ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`column`);

MySQL sẽ phản hồi với những thứ như:

Query OK, 4524 rows affected (1.09 sec)
Records: 4524 Duplicates: 9342 Warnings: 0

Tất nhiên, bạn sẽ để MySQL quyết định những hàng nào sẽ giảm xuống.

CHỈNH SỬA:

điều này hoạt động cho bao nhiêu cột tùy thích:

ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`col1`, `col2`, `col3`);

kiểm tra tài liệu của MySQL trên TẠO CHỈ SỐ . Một lỗi phổ biến (ít nhất tôi đã gặp một lần) là quên rằng NULL = NULL không đúng (nhưng NULL ), do đó {42, NULL} và {42, NULL} được phép cho chỉ mục DUY NHẤT trên hai cột.



  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áy chủ MAMP mysql sẽ không khởi động. Không có quy trình mysql nào đang chạy

  2. Tại sao SELECT ... WHERE id =a trả về kết quả nếu giá trị là 0

  3. Chèn dữ liệu tiếng Ả Rập vào cơ sở dữ liệu mysql

  4. Làm thế nào để bạn tham gia vào cùng một bàn, hai lần, trong mysql?

  5. Đã chèn, đã xóa các bảng (Magic Tables) trong MySQL