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

Temukan ID duplikat terbaru dengan MySQL

Nah, Anda semacam menjawab pertanyaan Anda. Anda sepertinya ingin max(id) :

SELECT email, COUNT(email) AS occurences, max(id)
FROM wineries
GROUP BY email
HAVING (COUNT(email) > 1);

Anda dapat menghapus yang lain menggunakan pernyataan. Hapus dengan join memiliki sintaks yang rumit di mana Anda harus membuat daftar nama tabel terlebih dahulu dan kemudian menentukan from klausa dengan gabungan:

delete wineries
            from wineries join
            (select email, max(id) as maxid
             from wineries
             group by email
             having count(*) > 1
            ) we
            on we.email = wineries.email and
               wineries.id < we.maxid;

Atau tulis ini sebagai exists klausa:

delete from wineries
    where exists (select 1
                  from (select email, max(id) as maxid
                        from wineries
                        group by email
                       ) we
                  where we.email = wineries.email and wineries.id < we.maxid
                 )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. KESALAHAN:Memuat data lokal dinonaktifkan - ini harus diaktifkan di sisi klien dan server

  2. Melewati array melalui AJAX dari php ke javascript

  3. Bagaimana Fungsi LOWER() Bekerja di MySQL

  4. Beberapa GROUP_CONCAT di berbagai bidang menggunakan MySQL

  5. Sumber data menolak pembuatan koneksi, pesan dari server:Terlalu banyak koneksi