Для начала в вашей системе должен быть установлен MySQL с его утилитами: рабочая среда MySQL и клиентская оболочка командной строки. После этого у вас должны быть некоторые данные или значения в таблицах базы данных в виде дубликатов. Давайте рассмотрим это на нескольких примерах. Прежде всего, откройте клиентскую оболочку командной строки с панели задач рабочего стола и введите свой пароль MySQL по запросу.
Мы нашли разные способы найти дубликаты в таблице. Посмотри на них один за другим.
Поиск дубликатов в одном столбце
Во-первых, вы должны знать синтаксис запроса, используемого для проверки и подсчета дубликатов для одного столбца.
>> ВЫБРАТЬ COUNT столбца (столбец) ИЗ таблицы GROUP BY col HAVING COUNT (столбец)> 1;Вот объяснение вышеуказанного запроса:
- Столбец: Имя проверяемого столбца.
- СЧИТАТЬ(): функция, используемая для подсчета множества повторяющихся значений.
- ГРУППА ПО: предложение, используемое для группировки всех строк в соответствии с этим конкретным столбцом.
Мы создали новую таблицу под названием «animals» в нашей базе данных MySQL «data» с повторяющимися значениями. В нем шесть столбцов с разными значениями, e.грамм., идентификатор, имя, вид, пол, возраст и цена, предоставляющие информацию о различных домашних животных. После вызова этой таблицы с помощью запроса SELECT мы получаем следующий вывод в нашей клиентской оболочке командной строки MySQL.
>> ВЫБРАТЬ * ИЗ данных.животные;
Теперь мы попытаемся найти повторяющиеся и повторяющиеся значения из приведенной выше таблицы, используя предложения COUNT и GROUP BY в запросе SELECT. Этот запрос будет считать имена домашних животных, которые встречаются в таблице менее 3 раз. После этого он отобразит эти имена, как показано ниже.
>> ВЫБРАТЬ Имя COUNT (Имя) ИЗ данных.животные ГРУППА ПО ИМЕНИ ИМЕЕТ СЧЕТЧИК (Имя) < 3;
Использование того же запроса для получения разных результатов при изменении числа COUNT для имен домашних животных, как показано ниже.
>> ВЫБРАТЬ Имя COUNT (Имя) ИЗ данных.животные ГРУППА ПО ИМЕНИ ИМЕЕТ СЧЕТЧИК (Имя)> 3;
Чтобы получить результаты для трех повторяющихся значений для имен домашних животных, как показано ниже.
>> ВЫБРАТЬ Имя COUNT (Имя) ИЗ данных.животные ГРУППА ПО ИМЕНИ ИМЕЕТ СЧЕТЧИК (Имя) = 3;
Искать дубликаты в нескольких столбцах
Синтаксис запроса для проверки или подсчета дубликатов для нескольких столбцов следующий:
>> ВЫБРАТЬ col1, COUNT (col1), col2, COUNT (col2) FROM table GROUP BY col1, col2 HAVING COUNT (col1)> 1 AND COUNT (col2)> 1;Вот объяснение вышеуказанного запроса:
- col1, col2: имя проверяемых столбцов.
- СЧИТАТЬ(): функция, используемая для подсчета нескольких повторяющихся значений.
- ГРУППА ПО: предложение, используемое для группировки всех строк в соответствии с этим конкретным столбцом.
Мы использовали ту же таблицу под названием «животные» с повторяющимися значениями. Мы получили приведенный ниже результат, используя указанный выше запрос для проверки повторяющихся значений в нескольких столбцах. Мы проверяли и подсчитывали повторяющиеся значения для столбцов «Пол» и «Цена», сгруппированные по столбцу «Цена». Он покажет пол домашних животных и их цены, которые находятся в таблице, как дубликаты не более 5.
>> ВЫБЕРИТЕ Пол, COUNT (Пол), Цена, COUNT (Цена) ИЗ данных.животные ГРУППА ПО ЦЕНЕ ИМЕЕТ КОЛИЧЕСТВО (Цена) < 5 AND COUNT(Gender) < 5;
Поиск дубликатов в одной таблице с помощью INNER JOIN
Вот основной синтаксис для поиска дубликатов в одной таблице:
>> ВЫБРАТЬ col1, col2, table.col FROM table INNER JOIN (SELECT col FROM table GROUP BY col HAVING COUNT (col1)> 1) temp ON table.col = temp.col;Вот описание служебного запроса:
- Col: имя столбца, который нужно проверить и выбрать для дублирования.
- Темп: ключевое слово для применения внутреннего соединения к столбцу.
- Таблица: имя проверяемой таблицы.
У нас есть новая таблица order2 с повторяющимися значениями в столбце OrderNo, как показано ниже.
>> ВЫБРАТЬ * ИЗ данных.order2;
Мы выбираем три столбца: Товар, Продажи, Номер заказа, которые будут отображаться в выводе. В то время как столбец OrderNo используется для проверки дубликатов. Внутреннее соединение выберет значения или строки, имеющие значения элементов более одного в таблице. После выполнения мы получим следующие результаты.
>> ВЫБРАТЬ Товар, Продажи, заказ2.ЗаказNo ИЗ данных.order2 INNER JOIN (ВЫБРАТЬ OrderNo FROM data.order2 ГРУППА ПО OrderNo HAVING COUNT (Item)> 1) temp ON order2.OrderNo = темп.№ заказа;
Поиск дубликатов в нескольких таблицах с помощью INNER JOIN
Вот упрощенный синтаксис для поиска дубликатов в нескольких таблицах:
>> ВЫБЕРИТЕ col FROM table1 INNER JOIN table2 ON table1.col = table2.col;Вот описание служебного запроса:
- col: имя столбцов, которые нужно проверить и выбрать.
- ВНУТРЕННЕЕ СОЕДИНЕНИЕ: функция, используемая для соединения двух таблиц.
- НА: используется для объединения двух таблиц в соответствии с предоставленными столбцами.
У нас есть две таблицы, 'order1' и 'order2', в нашей базе данных со столбцом 'OrderNo' в обеих, как показано ниже.
Мы будем использовать INNER join для объединения дубликатов двух таблиц в соответствии с указанным столбцом. Предложение INNER JOIN получит все данные из обеих таблиц, объединив их, а предложение ON будет связывать столбцы с одинаковыми именами из обеих таблиц, e.грамм., № заказа.
>> ВЫБРАТЬ * ИЗ данных.order1 данные INNER JOIN.order2 ON order1.OrderNo = order2.№ заказа;
Чтобы получить определенные столбцы в выходных данных, попробуйте следующую команду:
>> ВЫБРАТЬ регион, статус, товар, продажи из данных.order1 данные INNER JOIN.order2 ON order1.OrderNo = order2.№ заказа;
Заключение
Теперь мы могли искать несколько копий в одной или нескольких таблицах информации MySQL и распознавать функции GROUP BY, COUNT и INNER JOIN. Убедитесь, что вы правильно построили таблицы и что выбраны правильные столбцы.