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

Как да намерите дубликати в MySQL

Ще върне всички записи, които имат дубли:

SELECT theTable.*
FROM theTable
INNER JOIN (
  SELECT link, size
  FROM theTable 
  GROUP BY link, size
  HAVING count(ID) > 1
) dups ON theTable.link = dups.link AND theTable.size = dups.size

Харесвам подзаявката b/c. Мога да правя неща като избиране на всички, освен първото или последното. (тогава е много лесно да се превърне в заявка за изтриване).

Пример:изберете всички дублиращи се записи ОСВЕН този с максимален идентификатор:

SELECT theTable.*
FROM theTable
INNER JOIN (
  SELECT link, size, max(ID) as maxID
  FROM theTable 
  GROUP BY link, size
  HAVING count(ID) > 1
) dups ON theTable.link = dups.link 
          AND theTable.size = dups.size 
          AND theTable.ID <> dups.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. Прилагане на разрешения за колона за таблица върху задействане

  2. Mysql „функция VALUES“ е отхвърлена

  3. Пролетното приложение губи връзка с MySql след 8 часа. Как да конфигурирате правилно?

  4. Инсталиране на mysql-libs на сървър с MySQL-Server5.5

  5. mysql.connector.errors.ProgrammingError:Неуспешна обработка на формат-параметри; „списъкът“ на Python не може да бъде преобразуван в тип MySQL