Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Znajdź najnowszy identyfikator duplikatów za pomocą MySQL

Cóż, odpowiadasz na swoje pytanie. Wygląda na to, że chcesz max(id) :

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

Pozostałe możesz usunąć za pomocą oświadczenia. Usuń za pomocą join ma skomplikowaną składnię, w której najpierw musisz podać nazwę tabeli, a następnie określić from klauzula ze złączeniem:

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;

Lub napisz to jako exists klauzula:

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. Błąd instalacji mysql-python:nie można otworzyć pliku dołączanego „config-win.h”

  2. Związek między katalogiem, schematem, użytkownikiem i instancją bazy danych

  3. MySql :Przyznaj opcje tylko do odczytu?

  4. mysql2.so:libmysqlclient_r.so.15:nie można otworzyć udostępnionego pliku obiektu:Brak takiego pliku lub katalogu

  5. Mysql datetime DEFAULT CURRENT_TIMESTAMP błąd