Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hapus baris duplikat yang memiliki jumlah lebih dari 1 di mysql

Di MySQL Anda tidak dapat memilih dari tabel yang Anda hapus secara bersamaan. Tetapi dengan tabel temp Anda dapat mengatasi masalah ini

DELETE FROM `users_acl` 
WHERE userID IN
(
    SELECT * FROM
    (
       SELECT userID
       FROM `users_acl`
       GROUP BY userID 
       HAVING COUNT(userID) > 1
       AND SUM(`acl` = 4) > 0
   ) tmp
);

atau gunakan join sebagai gantinya

DELETE u
FROM `users_acl` u
JOIN 
(
    SELECT userID
    FROM `users_acl`
    GROUP BY userID 
    HAVING COUNT(userID) > 1
    AND SUM(`acl` = 4) > 0
) tmp on tmp.userID = u.userID


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana melakukan pencadangan db mysql otomatis menggunakan meja kerja mysql

  2. Kueri teks lengkap dengan satu kutipan

  3. Pengkodean karakter Yunani berfungsi dalam HTML tetapi tidak dalam PHP

  4. Mengisi JTree dari database

  5. Di RDS, bisakah saya membuat Tabel di Replika Baca yang tidak ada di Master?