MySQL MariaDB

MySQL Find duplikatværdier i tabel

MySQL Find duplikatværdier i tabel
Redundante data kan opbevares i tabellen af ​​databaseprogrammet, hvilket påvirker databasens output i MySQL. Datareplikering sker dog til forskellige formål, og det er et vigtigt job at identificere duplikatværdierne i tabellen, når der behandles en MySQL-database. Generelt er det smart at bruge klare begrænsninger på et bord ofte til at gemme oplysninger, der forhindrer overflødige rækker. Nogle gange kan du i en MySQL-database måske beregne antallet af gentagne værdier. Vi behandlede dette spørgsmål i dette emne, hvor du vil lære om, hvordan man finder duplikatværdier på forskellige måder, og hvordan man tæller duplikatværdier.

For at komme i gang skal du have MySQL installeret på dit system med dets hjælpeprogrammer: MySQL-arbejdsbænk og kommandolinjeklientshell. Derefter skal du have nogle data eller værdier i dine databasetabeller som duplikater. Lad os udforske dette med nogle eksempler. Først og fremmest skal du åbne din kommandolinjeklientshell fra din desktop-proceslinje og skrive din MySQL-adgangskode efter anmodning.

Vi har fundet forskellige metoder til at finde duplikeret i en tabel. Se på dem en efter en.

Søg efter duplikater i en enkelt kolonne

Først skal du vide om syntaksen for den forespørgsel, der bruges til at kontrollere og tælle dubletter for en enkelt kolonne.

>> VÆLG kol. TÆLL (kol.) FRA tabel GRUPPE FOR kol

Her er forklaringen på ovenstående forespørgsel:

Vi har oprettet en ny tabel kaldet 'dyr' i vores MySQL-database 'data' med dobbelte værdier. Det har seks kolonner med forskellige værdier, f.eks.g., id, navn, art, køn, alder og pris, der giver oplysninger om forskellige kæledyr. Når vi kalder denne tabel ved hjælp af SELECT-forespørgslen, får vi nedenstående output på vores MySQL-kommandolinjeklientshell.

>> VÆLG * FRA data.dyr;

Nu vil vi forsøge at finde de overflødige og gentagne værdier fra ovenstående tabel ved at bruge TÆLLE- og GROUP BY-udtrykket i SELECT-forespørgslen. Denne forespørgsel tæller navnene på kæledyr, der er placeret mindre end 3 gange i tabellen. Derefter viser det disse navne som nedenfor.

>> VÆLG Navn TÆLL (navn) FRA data.dyr GRUPPER PÅ Navn HAR TÆLLER (Navn) < 3;

Brug af den samme forespørgsel til at få forskellige resultater, mens du ændrer COUNT-nummeret for kæledyrsnavne som vist nedenfor.

>> VÆLG Navn TÆLL (navn) FRA data.dyr GRUPPER PÅ Navn MED TÆLLING (Navn)> 3;

For at få resultater for i alt 3 duplikatværdier for navne på kæledyr som vist nedenfor.

>> VÆLG Navn TÆLL (navn) FRA data.dyr GRUPPER PÅ Navn HAR TÆLLER (Navn) = 3;

Søg efter duplikater i flere kolonner

Syntaks for forespørgslen for at kontrollere eller tælle duplikater for flere kolonner er som følger:

>> VÆLG col1, COUNT (col1), col2, COUNT (col2) FRA tabel GRUPPE FOR col1, col2 HAR COUNT (col1)> 1 OG COUNT (col2)> 1;

Her er forklaringen på ovenstående forespørgsel:

Vi har brugt den samme tabel kaldet 'dyr' med dobbelte værdier. Vi fik nedenstående output, mens vi brugte ovenstående forespørgsel til kontrol af de duplikerede værdier i flere kolonner. Vi har kontrolleret og talt de dobbelte værdier for kolonner Køn og pris, mens de er grupperet efter kolonnen Pris. Det viser kæledyrs køn og deres priser, der findes i tabellen som duplikater, ikke mere end 5.

>> VÆLG Køn, TÆLLING (Køn), Pris, TÆLLING (Pris) FRA data.dyr GRUPP FOR PRIS HAVT TÆLLER (Pris) < 5 AND  COUNT(Gender) < 5;

Søg efter duplikater i enkeltbord ved hjælp af INNER JOIN

Her er den grundlæggende syntaks til at finde dubletter i en enkelt tabel:

>> VÆLG col1, col2, tabel.col FRA tabel INNRE JOIN (VÆLG col FRA tabel GRUPPE VED kol. HAVTÆLL (col1)> 1) temp ON tabel.col = temp.col;

Her er fortællingen om overheadforespørgslen:

Vi har en ny tabel, 'order2' med duplikerede værdier i kolonnen OrderNo som vist nedenfor.

>> VÆLG * FRA data.ordre2;

Vi vælger tre kolonner: Vare, Salg, Ordrenr., Der skal vises i output. Mens kolonnen OrderNo bruges til at kontrollere dubletter. Den indre sammenføjning vælger de værdier eller rækker, der har værdierne for varer mere end en i en tabel. Efter udførelse får vi resultaterne nedenfor.

>> VÆLG vare, salg, ordre2.OrderNo FROM data.order2 INNER JOIN (VÆLG OrderNr FRA data.ordre2 GRUPPER Efter ordre nr. HAR TÆLLER (vare)> 1) temp ON ordre2.OrderNo = temp.Ordre nummer;

Søg efter duplikater i flere tabeller ved hjælp af INNER JOIN

Her er den forenklede syntaks til at finde dubletter i flere tabeller:

>> VÆLG kolonne FRA tabel1 INDRE FORENEDE tabel2 PÅ tabel1.col = tabel2.col;

Her er beskrivelsen af ​​overheadforespørgslen:

Vi har to tabeller, 'order1' og 'order2', i vores database med kolonnen 'OrderNo' i begge som vist nedenfor.

Vi bruger INNER-sammenføjningen til at kombinere duplikaterne af to tabeller i henhold til en specificeret kolonne. INNER JOIN-klausulen får alle data fra begge tabeller ved at slutte sig til dem, og ON-klausulen vil relatere de samme kolonner fra begge tabeller, e.g., Ordre nummer.

>> VÆLG * FRA data.rækkefølge1 INNER JOIN data.ordre2 TIL ordre1.OrderNo = ordre2.Ordre nummer;

For at få de bestemte kolonner i et output, prøv nedenstående kommando:

>> VÆLG region, status, vare, salg fra data.rækkefølge1 INNER JOIN data.ordre2 TIL ordre1.OrderNo = ordre2.Ordre nummer;

Konklusion

Vi kunne nu søge efter flere kopier i en eller flere tabeller med MySQL-oplysninger og genkende funktionen GROUP BY, COUNT og INNER JOIN. Sørg for, at du har bygget tabellerne korrekt, og også at de rigtige kolonner er valgt.

OpenTTD Tutorial
OpenTTD er et af de mest populære forretningssimuleringsspil derude. I dette spil skal du oprette en vidunderlig transportvirksomhed. Du starter dog i...
SuperTuxKart til Linux
SuperTuxKart er en fantastisk titel designet til at give dig Mario Kart-oplevelsen gratis på dit Linux-system. Det er ret udfordrende og sjovt at spil...
Kæmp om Wesnoth-vejledning
Slaget om Wesnoth er et af de mest populære open source-strategispil, som du kan spille på dette tidspunkt. Ikke kun har dette spil været under udvikl...