За да започнете, трябва да имате инсталиран MySQL на вашата система с неговите помощни програми: MySQL работна среда и клиентска обвивка на командния ред. След това трябва да имате някои данни или стойности в таблиците на базата данни като дубликати. Нека разгледаме това с някои примери. На първо място, отворете черупката на вашия команден ред от лентата на задачите на работния плот и въведете паролата си за MySQL при поискване.
Намерихме различни методи за намиране на дублирани в таблица. Погледнете ги един по един.
Търсене на дубликати в една колона
Първо, трябва да знаете за синтаксиса на заявката, използвана за проверка и преброяване на дубликати за една колона.
>> ИЗБЕРЕТЕ col COUNT (col) ОТ таблица GROUP BY col HAVING COUNT (col)> 1;Ето обяснението на горната заявка:
- Колона: Име на колоната за проверка.
- БРОЯ(): функцията, използвана за преброяване на много дублирани стойности.
- ГРУПИРАЙ ПО: клаузата, използвана за групиране на всички редове според конкретната колона.
Създадохме нова таблица, наречена „животни“ в базата данни „My Data“ на MySQL с дублирани стойности. Той има шест колони с различни стойности, напр.ж., id, име, видове, пол, възраст и цена, предоставящи информация относно различни домашни любимци. При извикване на тази таблица с помощта на заявката SELECT, получаваме изхода по-долу в нашата клиентска обвивка на MySQL команден ред.
>> ИЗБЕРЕТЕ * ОТ данни.животни;
Сега ще се опитаме да намерим излишните и повтарящи се стойности от горната таблица, като използваме клаузата COUNT и GROUP BY в заявката SELECT. Тази заявка ще преброи имената на домашни любимци, които се намират по-малко от 3 пъти в таблицата. След това ще покаже тези имена, както е показано по-долу.
>> ИЗБЕРЕТЕ ИМЕ БРОЙ (Име) ОТ данни.животни ГРУПА ПО ИМЕ, БРОЯЩИ (Име) < 3;
Използване на една и съща заявка, за да получите различни резултати, докато променяте броя на COUNT за имена на домашни любимци, както е показано по-долу.
>> ИЗБЕРЕТЕ ИМЕ БРОЙ (Име) ОТ данни.животни ГРУПА ПО ИМЕ С БРОЙ (Име)> 3;
За да получите резултати за общо 3 дублирани стойности за Имена на домашни любимци, както е показано по-долу.
>> ИЗБЕРЕТЕ ИМЕ БРОЙ (Име) ОТ данни.животни ГРУПА ПО ИМЕ БРОЙ (Име) = 3;
Търсене на дубликати в множество колони
Синтаксисът на заявката за проверка или преброяване на дубликати за множество колони е както следва:
>> ИЗБЕРЕТЕ col1, COUNT (col1), col2, COUNT (col2) ОТ таблица GROUP BY col1, col2 HAVING COUNT (col1)> 1 И COUNT (col2)> 1;Ето обяснението на горната заявка:
- col1, col2: име на колоните за проверка.
- БРОЯ(): функцията, използвана за преброяване на няколко дублиращи се стойности.
- ГРУПИРАЙ ПО: клаузата, използвана за групиране на всички редове според конкретната колона.
Използваме същата таблица, наречена „животни“, която има дублирани стойности. Получихме изхода по-долу, докато използвахме горната заявка за проверка на дублиращите се стойности в множество колони. Проверяваме и броим дублиращите се стойности за колони Пол и Цена, докато сме групирани по колона Цена. Той ще покаже половете на домашните любимци и техните цени, които се намират в таблицата, като дубликати не повече от 5.
>> ИЗБЕРЕТЕ Пол, БРОЙ (Пол), Цена, БРОЙ (Цена) ОТ данни.животни ГРУПИРАНЕ ПО ЦЕНА ИМА БРОЙ (Цена) < 5 AND COUNT(Gender) < 5;
Търсете дубликати в единична таблица с помощта на INNER JOIN
Ето основния синтаксис за намиране на дубликати в една таблица:
>> ИЗБЕРЕТЕ col1, col2, таблица.col ОТ таблицата INNER JOIN (ИЗБЕРЕТЕ col ОТ таблицата GROUP BY col HAVING COUNT (col1)> 1) temp ON таблица.col = темп.col;Ето описанието на допълнителната заявка:
- Col: името на колоната, която трябва да бъде проверена и избрана за дубликати.
- Температура: ключова дума за прилагане на вътрешно присъединяване към колона.
- Таблица: име на таблицата, която трябва да се провери.
Имаме нова таблица „order2“ с дублиращи се стойности в колоната OrderNo, както е показано по-долу.
>> ИЗБЕРЕТЕ * ОТ данни.поръчка2;
Избираме три колони: Артикул, Продажби, Поръчка №, които да бъдат показани в изхода. Докато колоната OrderNo се използва за проверка на дубликати. Вътрешното съединение ще избере стойностите или редовете, имащи стойностите на Елементи повече от една в таблица. След изпълнението ще получим резултатите по-долу.
>> ИЗБЕРЕТЕ артикул, продажби, поръчка2.Поръчка БЕЗ данни.order2 INNER JOIN (SELECT OrderNo FROM данни.order2 GROUP BY OrderNo HAVING COUNT (Item)> 1) temp ON order2.OrderNo = temp.Поръчка Номер;
Търсете дубликати в множество таблици с помощта на INNER JOIN
Ето опростения синтаксис за намиране на дубликати в множество таблици:
>> ИЗБЕРЕТЕ col ОТ table1 INNER JOIN table2 ON table1.col = таблица2.col;Ето описанието на допълнителната заявка:
- col: име на колоните, които трябва да бъдат проверени и избрани.
- ВЪТРЕШНО ПРИСЪЕДИНЯВАНЕ: функцията, използвана за присъединяване на две таблици.
- НА: използва се за обединяване на две таблици според предоставените колони.
Имаме две таблици, „order1“ и „order2“, в нашата база данни има колона „OrderNo“ и в двете, както е показано по-долу.
Ще използваме INNER join, за да комбинираме дубликатите на две таблици според определена колона. Клаузата INNER JOIN ще получи всички данни от двете таблици, като ги обедини, а клаузата ON ще свърже едноименните колони от двете таблици, e.ж., Поръчка Номер.
>> ИЗБЕРЕТЕ * ОТ данни.order1 INNER JOIN данни.поръчка2 ВКЛ поръчка1.OrderNo = поръчка2.Поръчка Номер;
За да получите конкретните колони в изход, опитайте командата по-долу:
>> ИЗБЕРЕТЕ регион, състояние, артикул, продажби ОТ данни.order1 INNER JOIN данни.поръчка2 ВКЛ поръчка1.OrderNo = поръчка2.Поръчка Номер;
Заключение
Вече можехме да търсим множество копия в една или няколко таблици на MySQL информация и да разпознаваме функцията GROUP BY, COUNT и INNER JOIN. Уверете се, че сте изградили таблиците правилно, както и че са избрани правилните колони.