Na začiatok musíte mať vo svojom systéme nainštalovaný MySQL s jeho pomocnými programami: pracovná plocha MySQL a shell klienta príkazového riadku. Potom by ste mali mať niektoré údaje alebo hodnoty v databázových tabuľkách ako duplikáty. Poďme to preskúmať na niekoľkých príkladoch. Najskôr otvorte shell klienta príkazového riadku na paneli úloh na pracovnej ploche a po výzve zadajte svoje heslo MySQL.
Našli sme rôzne metódy na vyhľadanie duplikátov v tabuľke. Pozerajte sa na ne jeden po druhom.
Vyhľadajte duplikáty v jednom stĺpci
Najprv musíte vedieť o syntaxi dotazu použitého na kontrolu a počítanie duplikátov pre jeden stĺpec.
>> VÝBER stĺpca POČET (stĺpec) Z tabuľky SKUPINA PODĽA stĺpca MÁ POČET (stĺpec)> 1;Tu je vysvetlenie vyššie uvedeného dotazu:
- Stĺpec: Názov stĺpca, ktorý sa má skontrolovať.
- COUNT (): funkcia použitá na spočítanie mnohých duplicitných hodnôt.
- SKUPINA PODĽA: klauzula použitá na zoskupenie všetkých riadkov podľa konkrétneho stĺpca.
V našej databáze MySQL sme vytvorili novú tabuľku s názvom „zvieratá“, ktorá má duplicitné hodnoty. Má šesť stĺpcov s rôznymi hodnotami, napr.g., id, meno, druh, pohlavie, vek a cena poskytujúce informácie týkajúce sa rôznych domácich miláčikov. Pri volaní tejto tabuľky pomocou dotazu SELECT dostaneme výstup uvedený nižšie v našom klientskom prostredí príkazového riadku MySQL.
>> SELECT * FROM data.zvieratá;
Teraz sa pokúsime nájsť nadbytočné a opakované hodnoty z tabuľky vyššie pomocou klauzúl COUNT a GROUP BY v dotaze SELECT. Tento dopyt bude počítať Názvy domácich miláčikov, ktoré sú v tabuľke umiestnené menej ako trikrát. Potom sa tieto názvy zobrazia nižšie.
>> VYBERTE Meno POČET (Meno) Z údajov.zvieratá SKUPINA PODĽA MENY MÁ POČET (meno) < 3;
Rovnaký dopyt umožňuje získať rôzne výsledky pri zmene čísla COUNT pre mená domácich miláčikov, ako je uvedené nižšie.
>> VYBERTE Meno POČET (Meno) Z údajov.zvieratá SKUPINA PODĽA MENY MÁ POČET (Meno)> 3;
Ak chcete získať výsledky pre celkovo 3 duplicitné hodnoty pre Názvy domácich miláčikov, ako je uvedené nižšie.
>> VYBERTE Meno POČET (Meno) Z údajov.zvieratá SKUPINA PODĽA MENY MÁ POČET (meno) = 3;
Vyhľadajte duplikáty vo viacerých stĺpcoch
Syntax dotazu na kontrolu alebo počítanie duplikátov pre viac stĺpcov je nasledovná:
>> SELECT col1, COUNT (col1), col2, COUNT (col2) FROM table GROUP BY col1, col2 HAVING COUNT (col1)> 1 AND COUNT (col2)> 1;Tu je vysvetlenie vyššie uvedeného dotazu:
- col1, col2: názov stĺpcov, ktoré sa majú skontrolovať.
- COUNT (): funkcia použitá na spočítanie niekoľkých duplicitných hodnôt.
- SKUPINA PODĽA: klauzula použitá na zoskupenie všetkých riadkov podľa konkrétneho stĺpca.
Používali sme rovnakú tabuľku s názvom „zvieratá“, ktorá mala duplicitné hodnoty. Získali sme výstup nižšie, zatiaľ čo sme pomocou vyššie uvedeného dotazu skontrolovali duplicitné hodnoty vo viacerých stĺpcoch. Kontrolujeme a počítame duplicitné hodnoty pre stĺpce Pohlavie a Cena, pričom sme boli zoskupení podľa stĺpca Cena. Zobrazia sa pohlavia domácich miláčikov a ich ceny, ktoré sa v tabuľke nachádzajú ako duplikáty najviac 5.
>> VYBERTE Pohlavie, POČET (Pohlavie), Cena, POČET (Cena) Z údajov.zvieratá SKUPINA PODĽA Cena MÁ POČET (Cena) < 5 AND COUNT(Gender) < 5;
Vyhľadajte duplikáty v jednej tabuľke pomocou INNER JOIN
Tu je základná syntax pre hľadanie duplikátov v jednej tabuľke:
>> SELECT col1, col2, table.stĺpec FROM tabuľky VNÚTORNÉ PRIPOJENIE (ZVOLIŤ stĺpec Z tabuľky SKUPINA PODĽA stĺpca HAVING COUNT (stĺpec1)> 1) tepl.col = tepl.col;Tu je popis spätného dotazu:
- Col: názov stĺpca, ktorý sa má skontrolovať a vybrať pre duplikáty.
- Teplota: kľúčové slovo použiť vnútorné spojenie na stĺpec.
- Tabuľka: názov tabuľky, ktorá sa má skontrolovať.
Máme novú tabuľku „order2“ s duplicitnými hodnotami v stĺpci OrderNo, ako je uvedené nižšie.
>> SELECT * FROM data.objednávka2;
Vyberáme tri stĺpce: Položka, Predaj, Číslo objednávky, ktoré sa majú zobraziť na výstupe. Zatiaľ čo stĺpec OrderNo slúži na kontrolu duplikátov. Vnútorné spojenie vyberie hodnoty alebo riadky s hodnotami položiek viac ako jedna v tabuľke. Po vykonaní dostaneme výsledky uvedené nižšie.
>> VYBRAŤ položku, predaj, objednávku2.Objednávka Žiadne FROM dáta.order2 INNER JOIN (VYBER OBJEDNÁVKU č. Z údajov.order2 GROUP BY OrderNo HAVING COUNT (Item)> 1) temp ON order2.Číslo objednávky = tepl.Číslo objednávky;
Vyhľadajte duplikáty vo viacerých tabuľkách pomocou INNER JOIN
Tu je zjednodušená syntax na hľadanie duplikátov vo viacerých tabuľkách:
>> SELECT col FROM table1 INNER JOIN table2 ON table1.col = tabuľka2.col;Tu je popis režijného dopytu:
- col: názov stĺpcov, ktoré sa majú skontrolovať a vybrať.
- VNÚTORNÉ PRIPOJENIE: funkcia použitá na spojenie dvoch tabuliek.
- ZAPNUTÉ: slúži na spojenie dvoch tabuliek podľa poskytnutých stĺpcov.
V našej databáze máme dve tabuľky „order1“ a „order2“ so stĺpcom „OrderNo“, ako je zobrazené nižšie.
Použijeme VNÚTORNÉ spojenie na kombinovanie duplikátov dvoch tabuliek podľa zadaného stĺpca. Klauzula INNER JOIN získa všetky údaje z oboch tabuliek ich spojením a klauzula ON bude súvisieť so stĺpcami rovnakého názvu z oboch tabuliek, napr.g., Číslo objednávky.
>> SELECT * FROM data.order1 INNER JOIN údaje.objednávka2 ON objednávka1.OrderNo = order2.Číslo objednávky;
Ak chcete získať konkrétne stĺpce vo výstupe, vyskúšajte nasledujúci príkaz:
>> VYBERTE Oblasť, Stav, Položka, Predaj Z údajov.order1 INNER JOIN údaje.objednávka2 ON objednávka1.OrderNo = order2.Číslo objednávky;
Záver
Teraz by sme mohli vyhľadať viac kópií v jednej alebo viacerých tabuľkách informácií MySQL a rozpoznať funkciu GROUP BY, COUNT a INNER JOIN. Uistite sa, že ste tabuľky zostavili správne a tiež aby ste vybrali správne stĺpce.