кодесурса
«MYSQL

Найти дубликаты данных в MySQL

script1adsense2code
script1adsense3code

Задача

Есть много случаев, когда вам нужно найти повторяющиеся значения в столбце таблицы MySql. Часто вы можете посчитать количество повторяющихся значений в таблице MySQL.

В этой статье мы обсудили запрос, в котором вы можете найти дубликаты, тройные, четырехкратные (или более) данные из таблицы MySQL.

Мы обсудили, как найти повторяющиеся значения с помощью INNER JOIN и подзапроса, INNER JOIN и DISTINCT, а также как подсчитать повторяющиеся значения с помощью GROUP BY и HAVING.

Стол в вопросе

Мы использовали таблицу под названием «item» для применения запроса:
Название таблицы: элемент
Структура: item_code varchar (20), значение int (11), количество int (11), где item_code - первичный ключ.


Использование INNER JOIN и подзапроса

Теперь мы хотим получить подробную информацию о тех записях, где поле количества имеет значения дубликатов / дубликатов. На изображении выше значения, отмеченные красным прямоугольником, существуют более одного раза.


Вот запрос:

Код:

SELECT item_code, value, item.quantity
FROM item
INNER JOIN(
SELECT quantity
FROM item
GROUP BY quantity
HAVING COUNT(item_code) >1
)temp ON item.quantity= temp.quantity;

Пример вывода:


Чтобы получить вышеуказанный результат, мы использовали запрос с оператором INNER JOIN ( INNER JOIN выбирает все строки из обеих участвующих таблиц, если между столбцами есть совпадение .). INNER JOIN использует основную таблицу 'item' и временную таблицу 'temp', данные которой поступают из подзапроса. Вот подзапрос и его вывод:

Код:

SELECT quantity
FROM item
GROUP BY quantity
HAVING COUNT(item_code) >1

Пример вывода:

«Пункт-дубликат-данных подзапрос»

Теперь следующий основной запрос будет выполняться для таблиц item и temp, где общим полем является количество, а результат будет следующим:

Код:

SELECT item_code, value, item.quantity
FROM item
INNER JOIN temp ON item.quantity= temp.quantity;

Использование INNER JOIN и DISTINCT

Вы можете использовать следующий запрос, чтобы получить тот же результат. Здесь мы применяем INNER JOIN для таблицы с самим собой. Так как одно и то же количественное значение существует в более чем двух записях, используется предложение DISTINCT.

Вот код и вывод:

Код:

SELECT distinct a.item_code, a.value, a.quantity
FROM item a
INNER JOIN item b ON a.quantity = b.quantity
WHERE a.item_code <> b.item_code

Пример вывода:


Подсчет повторяющихся данных в MySQL

Следующий запрос подсчитывает те записи, в которых поле количества содержит дубликаты / дубликаты (или более) данных.

Данные таблицы:


Код:

SELECT item_code, COUNT( quantity ) x
FROM item
GROUP BY quantity
HAVING x >1

Пример вывода:

«Вещь-мастер-дублированных данных подсчета»

Подсчет повторяющихся записей в MySQL

Чтобы подсчитать общее количество дубликатов (или более) «количество» таблицы «элемент», вы можете использовать следующий запрос:

Код:

SELECT count(*) AS Total_duplicate_count
FROM
(SELECT item_code FROM item
GROUP BY quantity HAVING COUNT(quantity) > 1
)AS x

Пример вывода:

«Вещь-мастер-дубликат-данные кол-продукт»

Предыдущая: Разные функции MySQL
Далее: строки, содержащие максимум группы для столбца

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code