Mysql
 sql >> база данни >  >> RDS >> Mysql

Намерете най-новите дублирани ID с MySQL

Е, ти отговаряш на въпроса си. Изглежда искате max(id) :

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

Можете да изтриете останалите с помощта на изявлението. Изтрийте с join има сложен синтаксис, при който първо трябва да посочите името на таблицата и след това да посочите from клауза със съединението:

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;

Или напишете това като exists клауза:

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. как да изтеглите базиран на blob файл от MySQL база данни в PHP?

  2. извикване на mysql функция, връщаща varchar в хибернация

  3. MySQL Workbench прекъсва връзката, когато не работи

  4. Python 3.7, Неуспешно колело за изграждане за MySql-Python

  5. Как мога да напиша SQL за таблица, която споделя същото име като защитена ключова дума в MySql?