MySQL MariaDB

MySQL Vind dubbele waarden in tabel

MySQL Vind dubbele waarden in tabel
Redundante gegevens kunnen door het databaseprogramma in de tabel worden bewaard, waardoor de uitvoer van de database in MySQL wordt beïnvloed. Gegevensreplicatie gebeurt echter voor verschillende doeleinden, en het is een belangrijke taak om de dubbele waarden in de tabel te identificeren bij het omgaan met een MySQL-database. In grote lijnen is het slim om vaak duidelijke beperkingen op een tafel te gebruiken om informatie op te slaan die overbodige rijen voorkomt. Soms wilt u in een MySQL-database het aantal herhaalde waarden berekenen. We hebben deze vraag behandeld in dit onderwerp, waarin u leert hoe u dubbele waarden op verschillende manieren kunt vinden en hoe u dubbele waarden kunt tellen.

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:

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:

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:

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:

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.

Top Oculus App Lab-games
Als je eigenaar bent van een Oculus-headset, moet je op de hoogte zijn van sideloading. Sideloading is het proces van het installeren van niet-winkeli...
Top 10 spellen om te spelen op Ubuntu
Het Windows-platform is een van de dominante platforms voor gaming geweest vanwege het enorme percentage games dat tegenwoordig wordt ontwikkeld om Wi...
5 beste arcade-spellen voor Linux
Tegenwoordig zijn computers serieuze machines die worden gebruikt om te gamen. Als je de nieuwe hoge score niet kunt halen, weet je wat ik bedoel. In ...