Поиск повторяющихся значений в MySQL - PullRequest
706 голосов
/ 27 марта 2009

У меня есть таблица со столбцом varchar, и я хотел бы найти все записи с дублирующимися значениями в этом столбце. Какой лучший запрос я могу использовать, чтобы найти дубликаты?

Ответы [ 24 ]

1 голос
/ 04 февраля 2016

Для удаления дублирующихся строк с несколькими полями, сначала можно сопоставить их с новым уникальным ключом, который указан только для отдельных строк, а затем использовать команду «group by» для удаления дублирующихся строк с тем же новым уникальным ключом:

Create TEMPORARY table tmp select concat(f1,f2) as cfs,t1.* from mytable as t1;
Create index x_tmp_cfs on tmp(cfs);
Create table unduptable select f1,f2,... from tmp group by cfs;
1 голос
/ 14 января 2019

Если вы хотите удалить дубликаты, используйте DISTINCT

В противном случае используйте этот запрос:

SELECT users.*,COUNT(user_ID) as user FROM users GROUP BY user_name HAVING user > 1;

0 голосов
/ 08 мая 2019

чтобы получить все данные, содержащие дубликаты, я использовал это:

SELECT * FROM TableName INNER JOIN(
  SELECT DupliactedData FROM TableName GROUP BY DupliactedData HAVING COUNT(DupliactedData) > 1 order by DupliactedData)
  temp ON TableName.DupliactedData = temp.DupliactedData;

TableName = таблица, с которой вы работаете.

DupliactedData = дублированные данные, которые вы ищете.

0 голосов
/ 15 ноября 2018

Попробуйте использовать этот запрос:

SELECT name, COUNT(*) value_count FROM company_master GROUP BY name HAVING value_count > 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...