MySQL MariaDB

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

MySQL найти повторяющиеся значения в таблице
Избыточные данные могут храниться в таблице программой базы данных, влияя на вывод базы данных в MySQL. Однако репликация данных выполняется для разных целей, и идентификация повторяющихся значений в таблице является важной задачей при работе с базой данных MySQL. Вообще говоря, разумно часто использовать четкие ограничения для таблицы для хранения информации, которая предотвращает появление избыточных строк. Иногда в базе данных MySQL вы можете рассчитать количество повторяющихся значений. Мы рассмотрели этот вопрос в этой теме, в которой вы узнаете, как находить повторяющиеся значения разными способами и как подсчитывать повторяющиеся значения.

Для начала в вашей системе должен быть установлен 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;

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

Мы использовали ту же таблицу под названием «животные» с повторяющимися значениями. Мы получили приведенный ниже результат, используя указанный выше запрос для проверки повторяющихся значений в нескольких столбцах. Мы проверяли и подсчитывали повторяющиеся значения для столбцов «Пол» и «Цена», сгруппированные по столбцу «Цена». Он покажет пол домашних животных и их цены, которые находятся в таблице, как дубликаты не более 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;

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

У нас есть новая таблица 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;

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

У нас есть две таблицы, '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. Убедитесь, что вы правильно построили таблицы и что выбраны правильные столбцы.

Как использовать чит-движок GameConqueror в Linux
В статье содержится руководство по использованию чит-движка GameConqueror в Linux. Многие пользователи, играющие в игры на Windows, часто используют п...
Лучшие эмуляторы игровой консоли для Linux
В этой статье будет перечислено популярное программное обеспечение для эмуляции игровых консолей, доступное для Linux. Эмуляция - это уровень совмести...
Лучшие дистрибутивы Linux для игр в 2021 году
Операционная система Linux прошла долгий путь от своего первоначального простого серверного вида. Эта ОС значительно улучшилась за последние годы и те...