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

Cách xóa bản sao với điều kiện nhất định

Điều này sẽ hoạt động:

DELETE Y
FROM YourTable Y JOIN 
   (
  SELECT
    name, cl_1, cl_2, cl_3, cl_4, cl_5, cl_6 
  FROM YourTable
  GROUP BY name, cl_1, cl_2, cl_3, cl_4, cl_5, cl_6
  HAVING COUNT(1) > 1
     ) T ON Y.name = T.name 
        AND Y.cl_1 = T.cl_1
        AND Y.cl_2 = T.cl_2
        AND Y.cl_3 = T.cl_3
        AND Y.cl_4 = T.cl_4
        AND Y.cl_5 = T.cl_5
        AND Y.cl_6 = T.cl_6

Bản trình diễn SQL Fiddle

BTW - Còn hàng 3 và hàng 6 thì sao? Những cái đó có vẻ giống hệt nhau?

http://sqlfiddle.com/#!2/26b8b/1




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sao chép thư mục / var / lib / mysql có phải là giải pháp thay thế tốt cho mysqldump không?

  2. Làm cách nào để lấy trường cuối cùng trong cơ sở dữ liệu Mysql với PHP?

  3. Tạo biến mảng trong MySQL

  4. Tại sao bạn không nên sử dụng DISTINCT khi bạn có thể sử dụng GROUP BY?

  5. Làm cách nào để liệt kê tất cả các trình kích hoạt trong cơ sở dữ liệu MySQL?