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

Pembaruan Pembersihan untuk Entri Duplikat

Oke, jadi inilah yang saya sarankan. Anda ingin mengubah klausa where Anda untuk menentukan hanya duplikat. Juga, Anda benar-benar hanya ingin melihat catatan aktif karena tidak masalah jika ada duplikat catatan tidak aktif.

Untuk melihat apakah ada duplikat, Anda dapat menggunakan exists . Untuk menggunakan yang ada, pertama kita akan menulis subquery untuk menarik kembali catatan duplikat, alias apa pun dengan nama depan dan belakang yang sama, id yang berbeda, dan juga aktif. Jika subquery menarik sesuatu kembali, ada akan mengembalikan true dan kami akan memperbarui catatan. Jika tidak ada duplikat, subquery tidak akan mengambil catatan apa pun dan yang ada akan mengembalikan false. Kemudian, kami tidak akan memperbarui catatan.

update u
set active = 0
From UserInfo u
where (SELECT count(*)
FROM UserRecords recs
where recs.UserId= u.UserId) = 0
and     u.active = 1
and     exists (Select 1
                From UserInfo u2
                Where u2.lastname = u.lastname
                and     u2.firstname = u.firstname
                and     u2.userid <> u.userid
                and     u2.active = 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. MySQL versus SQL Server Express

  2. Python3 + MySql:Kesalahan memuat modul MySQLdb:Tidak ada modul bernama 'MySQLdb'

  3. Bagaimana Anda memaksa mysql LIKE menjadi case sensitif?

  4. Pilih dari beberapa tabel dengan pembuat kueri lancar laravel

  5. Kueri untuk menemukan tempat dalam lat/lng tertentu