Поиск по сайту:

Работайте, работайте — а понимание придет потом (Ж. Даламбер).

Нахождение повторяющихся значений в таблице в MySQL

4 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
5 марта 2021
Как установить MySQL на Ubuntu 16.04
Избыточные данные могут храниться в таблице программой базы данных, влияя на вывод базы данных в MySQL. Однако репликация данных выполняется для разных целей, и идентификация повторяющихся значений в таблице является важной задачей при работе с базой данных MySQL. В общем, разумно часто использовать четкие ограничения для таблицы, чтобы хранить информацию, которая предотвращает появление избыточных строк. Иногда в базе данных MySQL вам может потребоваться подсчитать количество повторяющихся значений. Мы рассмотрели этот вопрос в этой теме, в которой вы узнаете, как находить повторяющиеся значения разными способами и как подсчитывать повторяющиеся значения.

Для начала у вас должен быть установлен MySQL в вашей системе со своими утилитами: рабочая среда MySQL и клиентская оболочка командной строки. После этого у вас должны быть дубликаты некоторых данных или значений в таблицах базы данных. Давайте рассмотрим это на нескольких примерах. Прежде всего, откройте клиентскую оболочку командной строки с панели задач рабочего стола и введите свой пароль MySQL по запросу.

Мы нашли разные методы поиска дубликатов в таблице. Взгляните на них один за другим.

 

Поиск дубликатов в одном столбце

Во-первых, вы должны знать синтаксис запроса, используемого для проверки и подсчета дубликатов для одного столбца.

>> SELECT col COUNT(col) FROM table GROUP BY col HAVING COUNT(col) > 1;

Вот объяснение вышеуказанного запроса:

  • Столбец: имя проверяемого столбца.
  • COUNT(): функция, используемая для подсчета множества повторяющихся значений.
  • GROUP BY: предложение, используемое для группировки всех строк в соответствии с этим конкретным столбцом.

Мы создали новую таблицу под названием «animals» в «data» нашей базы данных MySQL, имеющую повторяющиеся значения. Он имеет шесть столбцов с разными значениями, например, id, Name, Species, Gender, Age и Price, предоставляя информацию о различных домашних животных. После вызова этой таблицы с помощью запроса SELECT мы получаем следующий вывод в нашей клиентской оболочке командной строки MySQL.

>> SELECT * FROM data.animals;

 

Теперь мы попытаемся найти повторяющиеся и повторяющиеся значения из приведенной выше таблицы, используя функцию COUNT и GROUP BY в запросе SELECT. Этот запрос будет считать имена домашних животных, которые встречаются в таблице менее трех раз. После этого он отобразит эти имена, как показано ниже.

>> SELECT Name COUNT(Name) FROM data.animals GROUP BY Name HAVING COUNT(Name) < 3;

 

Читать  Как установить CouchDB на CentOS 8

Использование того же запроса для получения разных результатов при изменении числа COUNT для имен домашних животных, как показано ниже.

>> SELECT Name COUNT(Name) FROM data.animals GROUP BY Name HAVING COUNT(Name) > 3;

 

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

>> SELECT Name COUNT(Name) FROM data.animals GROUP BY Name HAVING COUNT(Name) = 3;

 

Искать дубликаты в нескольких столбцах

Синтаксис запроса для проверки или подсчета дубликатов для нескольких столбцов следующий:

>> SELECT col1, COUNT(col1), col2, COUNT(col2) FROM table GROUP BY col1, col2 HAVING COUNT(col1) > 1 AND  COUNT(col2) > 1;

 

Вот объяснение вышеуказанного запроса:

  • col1, col2: имя проверяемых столбцов.
  • COUNT(): функция, используемая для подсчета нескольких повторяющихся значений.
  • GROUP BY: предложение, используемое для группировки всех строк в соответствии с этим конкретным столбцом.

Мы использовали ту же таблицу под названием «животные» с повторяющимися значениями. Мы получили приведенный ниже результат, используя указанный выше запрос для проверки повторяющихся значений в нескольких столбцах. Мы проверяли и подсчитывали повторяющиеся значения для столбцов «Gender» и «Price», сгруппированные по столбцу «Price». Он покажет пол домашних животных и их цены, которые находятся в таблице, как дубликаты не более 5.

>> SELECT Gender, COUNT(Gender), Price, COUNT(Price) FROM data.animals GROUP BY Price HAVING COUNT(Price) < 5 AND  COUNT(Gender) < 5;

 

Поиск дубликатов в одной таблице с помощью INNER JOIN

Вот основной синтаксис для поиска дубликатов в одной таблице:

>> SELECT 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: имя столбца, который нужно проверить и выбрать для дублирования.
  • Temp: ключевое слово для применения внутреннего соединения к столбцу.
  • Таблица: имя проверяемой таблицы.

У нас есть новая таблица order2 с повторяющимися значениями в столбце OrderNo, как показано ниже.

>> SELECT * FROM data.order2;

 

Мы выбираем три столбца: Item, Sales, OrderNo, которые будут отображаться в выводе. В то время как столбец OrderNo используется для проверки дубликатов. Внутреннее соединение выберет значения или строки, имеющие значения элементов более одного в таблице. После выполнения мы получим следующие результаты.

>> SELECT Item, Sales, order2.OrderNo FROM data.order2 INNER JOIN(SELECT OrderNo FROM data.order2 GROUP BY OrderNo HAVING COUNT(Item) > 1) temp ON order2.OrderNo= temp.OrderNo;

 

Поиск дубликатов в нескольких таблицах с помощью INNER JOIN

Вот упрощенный синтаксис для поиска дубликатов в нескольких таблицах:

>> SELECT col FROM table1 INNER JOIN table2 ON table1.col = table2.col;

 

Вот описание служебного запроса:

  • col: имя столбцов, которые нужно проверить и выбрать.
  • INNER JOIN: функция, используемая для соединения двух таблиц.
  • ВКЛ: используется для объединения двух таблиц в соответствии с предоставленными столбцами.
Читать  Взаимодействие CouchDB с Python

У нас есть две таблицы, «order1» и «order2», в нашей базе данных со столбцом «OrderNo» в обеих, как показано ниже.

 

Мы будем использовать INNER join для объединения дубликатов двух таблиц в соответствии с указанным столбцом. Предложение INNER JOIN получит все данные из обеих таблиц, объединив их, а предложение ON будет связывать столбцы с одинаковыми именами из обеих таблиц, например, OrderNo.

>> SELECT * FROM data.order1 INNER JOIN data.order2 ON order1.OrderNo = order2.OrderNO;

 

Чтобы получить определенные столбцы в выходных данных, попробуйте следующую команду:

>> SELECT Region, Status, Item, Sales FROM data.order1 INNER JOIN data.order2 ON order1.OrderNo = order2.OrderNO;

 

Вывод

Теперь мы могли искать несколько копий в одной или нескольких таблицах информации MySQL и распознавать функции GROUP BY, COUNT и INNER JOIN. Убедитесь, что вы правильно построили таблицы и что выбраны правильные столбцы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close