Для початку у вас повинна бути встановлена 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;Ось пояснення наведеного вище запиту:
- col1, col2: назва стовпців для перевірки.
- РАХУВАТИ(): функція, що використовується для підрахунку кількох повторюваних значень.
- ГРУПА ЗА: речення, що використовується для групування всіх рядків відповідно до цього конкретного стовпця.
Ми використовували ту саму таблицю, яка називається "тварини", що має повторювані значення. Ми отримали нижченаведений результат, використовуючи наведений вище запит для перевірки повторюваних значень у декількох стовпцях. Ми перевіряли та підраховували повторювані значення для стовпців Пол і Ціна, групуючи їх за стовпцем Ціна. Він відображатиме статі домашніх тварин та їх ціни, що містяться в таблиці, як копії не більше 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.кол;Ось опис накладних запитів:
- col: назва стовпців, які потрібно перевірити та вибрати.
- ВНУТРІШНЄ З'ЄДНАННЯ: функція, яка використовується для об'єднання двох таблиць.
- УВІМК використовується для об’єднання двох таблиць відповідно до наданих стовпців.
У нашій базі даних є дві таблиці "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. Переконайтеся, що ви правильно створили таблиці, а також вибрали правильні стовпці.