MySQL MariaDB

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

MySQL Знайти повторювані значення в таблиці
Надлишкові дані можуть зберігатися в таблиці програмою баз даних, впливаючи на вихід бази даних у MySQL. Реплікація даних, однак, відбувається з різними цілями, і важливою роботою є виявлення повторюваних значень у таблиці при роботі з базою даних MySQL. Взагалі кажучи, розумно часто використовувати чіткі обмеження для таблиці, щоб зберігати інформацію, яка запобігає зайвим рядкам. Іноді в базі даних MySQL вам може знадобитися розрахувати кількість повторюваних значень. Ми розглянули це питання в цій темі, в якій ви дізнаєтесь про те, як знаходити повторювані значення різними способами та як підраховувати повторювані значення.

Для початку у вас повинна бути встановлена ​​MySQL у вашій системі з її утилітами: робочий стіл MySQL та оболонка клієнтського рядка командного рядка. Після цього у ваших таблицях бази даних повинні бути дані або значення у вигляді копій. Давайте дослідимо це на кількох прикладах. Перш за все, відкрийте оболонку клієнтського рядка командного рядка на панелі завдань робочого столу та введіть пароль MySQL за запитом.

Ми знайшли різні методи пошуку дублікатів у таблиці. Погляньте на них по черзі.

Шукати копії в одній колонці

По-перше, ви повинні знати про синтаксис запиту, який використовується для перевірки та підрахунку дублікатів для одного стовпця.

>> ВИБЕРИ col col (col) З таблиці GROUP BY col HAVING COUNT (col)> 1;

Ось пояснення наведеного запиту:

Ми створили нову таблицю під назвою 'тварини' в нашій базі даних MySQL 'дані', що має дубльовані значення. Він має шість стовпців із різними значеннями, напр.g., ідентифікатор, ім’я, вид, стать, вік та ціна, що надає інформацію щодо різних домашніх тварин. Зателефонувавши до цієї таблиці за допомогою запиту SELECT, ми отримуємо наведені нижче результати в нашій оболонці клієнтського рядка MySQL.

>> ВИБЕРІТЬ * ВІД даних.тварини;

Тепер ми спробуємо знайти зайві та повторювані значення з наведеної таблиці, використовуючи речення COUNT і GROUP BY у запиті SELECT. Цей запит буде враховувати імена домашніх тварин, які знаходяться в таблиці менше 3 разів. Після цього він буде відображати ці імена, як показано нижче.

>> ВИБЕРІТЬ ІМЯ COUNT (Ім'я) ВІД даних.тварини ГРУПА ЗА ІМ'ЯМ, ЩО МАЮТЬ (Ім'я) < 3;

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

>> ВИБЕРІТЬ ІМЯ COUNT (Ім'я) ВІД даних.тварини ГРУПА ЗА ІМ'ЯМ, ЩО МАЮТЬ (ІМ'Я)> 3;

Щоб отримати результати для загальної кількості 3 повторюваних значень для Імен домашніх тварин, як показано нижче.

>> ВИБЕРІТЬ ІМЯ COUNT (Ім'я) ВІД даних.тварини ГРУПА ЗА ІМ'ЯМ, ЩО МАЮТЬ (Ім'я) = 3;

Шукати дублікати в декількох стовпцях

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

>> ВИБЕРІТЬ col1, COUNT (col1), col2, COUNT (col2) З таблиці GROUP BY col1, col2 МАЮЧИ COUNT (col1)> 1 І COUNT (col2)> 1;

Ось пояснення наведеного вище запиту:

Ми використовували ту саму таблицю, яка називається "тварини", що має повторювані значення. Ми отримали нижченаведений результат, використовуючи наведений вище запит для перевірки повторюваних значень у декількох стовпцях. Ми перевіряли та підраховували повторювані значення для стовпців Пол і Ціна, групуючи їх за стовпцем Ціна. Він відображатиме статі домашніх тварин та їх ціни, що містяться в таблиці, як копії не більше 5.

>> ВИБЕРІТЬ Гендер, COUNT (Гендер), Ціна, COUNT (Ціна) З даних.тварини ГРУПА ЗА ЦІНОЮ МАЮЧИ (ЦІНА) < 5 AND  COUNT(Gender) < 5;

Шукати дублікати в одній таблиці за допомогою INNER JOIN

Ось основний синтаксис пошуку дублікатів в одній таблиці:

>> ВИБЕРІТЬ col1, col2, таблицю.col ВІД ВНУТРІШНЬОГО ПРИЄДНАННЯ (ВИБЕРІТИ ЗІ таблиці GROUP BY col HAVING COUNT (col1))> 1.col = temp.кол;

Ось опис накладних запитів:

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

>> ВИБЕРІТЬ * ВІД даних.замовлення2;

Ми вибираємо три стовпці: Товар, Продажі, Замовлення № для відображення у вихідних даних. Тоді як стовпець OrderNo використовується для перевірки дублікатів. Внутрішнє об’єднання вибере значення або рядки, що мають значення Елементів більше, ніж одне в таблиці. Після виконання ми отримаємо результати нижче.

>> ВИБЕРІТЬ товар, продаж, замовлення2.ЗАМОВЛЕННЯ НЕ ВІД даних.order2 INNER JOIN (ВИБЕРІТЬ OrderNo FROM data.замовлення2 ГРУПУВАННЯ ЗА ЗАМОВЛЕННЯМ НЕ МАЄ КОНТАКТУ (Елемент)> 1) Темп.No замовлення = темп.Номер замовлення;

Шукати дублікати в декількох таблицях за допомогою INNER JOIN

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

>> ВИБЕРІТЬ col З ФОРМАТИ1 ВНУТРІШНЄ ПРИЄДНАННЯ таблиці2 УВІМКНУТИ таблицю1.col = таблиця2.кол;

Ось опис накладних запитів:

У нашій базі даних є дві таблиці "order1" і "order2", у котрі стовпець "OrderNo" є в обох, як показано нижче.

Ми будемо використовувати об’єднання INNER для об’єднання дублікатів двох таблиць відповідно до вказаного стовпця. Речення INNER JOIN отримає всі дані з обох таблиць, приєднавши їх, а речення ON буде співвідносити однакові стовпці імен з обох таблиць, e.g., Номер замовлення.

>> ВИБЕРІТЬ * ВІД даних.order1 ВНУТРІШНІ ПРИЄДНАННЯ дані.order2 ON order1.No замовлення = замовлення2.Номер замовлення;

Щоб отримати конкретні стовпці у вихідних даних, спробуйте команду нижче:

>> ВИБЕРІТЬ регіон, статус, товар, продаж ВІД даних.order1 ВНУТРІШНІ ПРИЄДНАННЯ дані.order2 ON order1.No замовлення = замовлення2.Номер замовлення;

Висновок

Тепер ми могли шукати кілька копій в одній або декількох таблицях інформації MySQL та розпізнавати функції GROUP BY, COUNT та INNER JOIN. Переконайтеся, що ви правильно створили таблиці, а також вибрали правильні стовпці.

Топ 5 ергономічних продуктів для комп'ютерної миші для Linux
Чи викликає тривале використання комп’ютера біль у зап’ясті або пальцях? Ви страждаєте від ригідності суглобів і вам постійно доводиться трясти руки? ...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Remap your mouse buttons differently for different software with X-Mouse Button Control
Maybe you need a tool that could make your mouse's control change with every application that you use. If this is the case, you can try out an applica...