Om aan de slag te gaan, moet MySQL op uw systeem zijn geïnstalleerd met de bijbehorende hulpprogramma's: MySQL-workbench en opdrachtregelclientshell. Daarna zou u enkele gegevens of waarden in uw databasetabellen moeten hebben als duplicaten. Laten we dit onderzoeken met enkele voorbeelden. Open eerst uw opdrachtregelclientshell vanaf uw bureaubladtaakbalk en typ uw MySQL-wachtwoord wanneer daarom wordt gevraagd.
We hebben verschillende methoden gevonden om gedupliceerd in een tabel te vinden. Bekijk ze een voor een.
Duplicaten zoeken in een enkele kolom
Ten eerste moet u de syntaxis kennen van de query die wordt gebruikt om duplicaten voor een enkele kolom te controleren en te tellen.
>> SELECTEER col COUNT(col) UIT tabel GROEP DOOR col HAVING COUNT(col) > 1;Hier is de uitleg van de bovenstaande vraag:
- Kolom: Naam van de kolom die moet worden gecontroleerd.
- AANTAL(): de functie die wordt gebruikt om veel dubbele waarden te tellen.
- GROEPEREN OP: de clausule die wordt gebruikt om alle rijen te groeperen volgens die specifieke kolom.
We hebben een nieuwe tabel gemaakt met de naam 'dieren' in onze MySQL-database 'gegevens' met dubbele waarden. Het heeft zes kolommen met verschillende waarden erin, e.g., id, naam, soort, geslacht, leeftijd en prijs met informatie over verschillende huisdieren. Bij het aanroepen van deze tabel met behulp van de SELECT-query, krijgen we de onderstaande uitvoer op onze MySQL-opdrachtregelclientshell:.
>> KIES * UIT gegevens.dieren;
Nu zullen we proberen de overtollige en herhaalde waarden uit de bovenstaande tabel te vinden met behulp van de COUNT- en GROUP BY-clausules in de SELECT-query. Deze zoekopdracht telt de namen van huisdieren die minder dan 3 keer in de tabel voorkomen. Daarna zal het die namen weergeven zoals hieronder:.
>> SELECT Name COUNT (Name) FROM data.dieren GROEP OP Naam HEBBEN COUNT (Naam) < 3;
Dezelfde zoekopdracht gebruiken om verschillende resultaten te krijgen terwijl het COUNT-nummer voor Namen van huisdieren wordt gewijzigd, zoals hieronder weergegeven.
>> SELECT Name COUNT (Name) FROM data.dieren GROEP OP Naam HEBBEN TELLING (Naam) > 3;
Om resultaten te krijgen voor in totaal 3 dubbele waarden voor namen van huisdieren, zoals hieronder weergegeven:.
>> SELECT Name COUNT(Name) FROM data.dieren GROEP OP Naam HEBBEN AANTAL (Naam) = 3;
Duplicaten zoeken in meerdere kolommen
De syntaxis van de query om duplicaten voor meerdere kolommen te controleren of te tellen is als volgt:
>> SELECTEER col1, COUNT (col1), col2, COUNT (col2) UIT tabel GROEP OP col1, col2 MET COUNT (col1) > 1 EN COUNT (col2) > 1;Hier is de uitleg van de bovenstaande vraag:
- col1, col2: naam van de te controleren kolommen.
- AANTAL(): de functie die wordt gebruikt om meerdere dubbele waarden te tellen.
- GROEPEREN OP: de clausule die wordt gebruikt om alle rijen te groeperen volgens die specifieke kolom.
We hebben dezelfde tabel met de naam 'dieren' gebruikt met dubbele waarden. We kregen de onderstaande uitvoer terwijl we de bovenstaande query gebruikten voor het controleren van de dubbele waarden in meerdere kolommen. We hebben de dubbele waarden voor de kolommen Geslacht en Prijs gecontroleerd en geteld, gegroepeerd op de kolom Prijs. Het toont de geslachten van het huisdier en hun prijzen die in de tabel voorkomen als duplicaten van niet meer dan 5.
>> SELECTEER geslacht, COUNT (geslacht), prijs, COUNT (prijs) UIT gegevens.dieren GROEP OP Prijs HEBBEN COUNT (Prijs) < 5 AND COUNT(Gender) < 5;
Duplicaten zoeken in een enkele tabel met INNER JOIN
Hier is de basissyntaxis voor het vinden van duplicaten in een enkele tabel:
>> SELECTEER col1, col2, tabel.col FROM table INNER JOIN(SELECT col FROM table GROUP BY col HAVING COUNT(col1) > 1) temp ON table.col= temp.kleur;Hier is het verhaal van de overheadquery:
- Kol: de naam van de kolom die moet worden gecontroleerd en geselecteerd voor duplicaten.
- Temperatuur: trefwoord om inner join op een kolom toe te passen.
- Tafel: naam van de tabel die moet worden gecontroleerd.
We hebben een nieuwe tabel, 'order2' met dubbele waarden in de kolom OrderNo zoals hieronder weergegeven shown.
>> KIES * UIT gegevens.bestelling2;
We selecteren drie kolommen: Artikel, Verkoop, Bestelnr die in de uitvoer moet worden weergegeven. Terwijl de kolom OrderNo wordt gebruikt om duplicaten te controleren. De inner join selecteert de waarden of rijen met de waarden van items meer dan één in een tabel. Na het uitvoeren krijgen we de onderstaande resultaten:.
>> SELECTEER artikel, verkoop, bestelling2.Bestelnr. FROM gegevens.order2 INNER JOIN(SELECT OrderNo FROM data).order2 GROEP OP BESTELLINGNR MET AANTAL (Artikel) > 1) temp OP bestelling2.Bestelnr= temp.Bestelnr;
Duplicaten zoeken in meerdere tabellen met INNER JOIN
Hier is de vereenvoudigde syntaxis voor het vinden van duplicaten in meerdere tabellen:
>> SELECTEER col UIT tabel1 BINNENSTAANDE JOIN tabel2 OP tabel1.col = tafel2.kleur;Hier is de beschrijving van de overheadquery:
- kleur: naam van de kolommen die moeten worden gecontroleerd en geselecteerd.
- INNERLIJKE JOIN: de functie die wordt gebruikt om twee tabellen samen te voegen.
- AAN: gebruikt om twee tabellen samen te voegen volgens de verstrekte kolommen.
We hebben twee tabellen, 'order1' en 'order2', in onze database met de kolom 'OrderNo' in beide zoals hieronder weergegeven.
We zullen de INNER-join gebruiken om de duplicaten van twee tabellen te combineren volgens een opgegeven kolom. De INNER JOIN-component haalt alle gegevens uit beide tabellen door ze samen te voegen, en de ON-component zal dezelfde naamkolommen uit beide tabellen relateren, bijv.g., Bestelnr.
>> KIES * UIT gegevens.order1 INNER JOIN-gegevens.bestelling2 OP bestelling1.Bestelnr = bestelling2.Bestelnr;
Probeer de onderstaande opdracht om de specifieke kolommen in een uitvoer te krijgen:
>> SELECT Regio, Status, Artikel, Verkoop FROM data.order1 INNER JOIN-gegevens.bestelling2 OP bestelling1.Bestelnr = bestelling2.Bestelnr;
Conclusie
We kunnen nu zoeken naar meerdere exemplaren in een of meerdere tabellen met MySQL-informatie en de functies GROUP BY, COUNT en INNER JOIN herkennen. Zorg ervoor dat je de tabellen goed hebt opgebouwd en ook dat de juiste kolommen zijn gekozen.