Gruppe _concat -funksjon er en gruppe etter samlet funksjon som lar deg sammenkoble kolonneverdier fra flere rader til et enkelt felt. Den returnerer en streng hvis den angitte gruppen inneholder en eller null kolonneverdi og returnerer en nullverdi hvis ingen kan bli funnet.
Denne opplæringen vil lære deg hvordan du bruker mysql group_concat () -funksjon for å kombinere strenger fra en gruppe med flere alternativer.
Grunnleggende bruk
Som vi har nevnt, returnerer denne funksjonen et strengresultat med verdiene til de sammenkoblede ikke-nullverdiene eller en null hvis ingen eksisterer.
Den generelle syntaksen er:
Group_concat ([distinkt] expr [, expr…]Forklaring
Fra syntaks ovenfor kan du se at Group_Concat -funksjonen bruker MySQL -klausuler og begrensninger for å spesifisere de forskjellige alternativene:
MERK: Strengresultatet generert av MySQL Group_Concat () -funksjonen er begrenset til en lengde Verdien som er satt i Group_Concat_Max_Len -variabelen. Denne verdien er definert i systemet og har en standardverdi på 1024. Du kan endre denne verdien globalt eller angi den i økten du trenger.
Sett [globalt | Økt] group_concat_max_len = verdi;Tenk på referansen nedenfor for å lære mer:
https: // dev.mysql.com/doc/refman/8.0/EN/server-system-variabler.HTML#SYSVAR_GROUP_CONCAT_MAX_LEN
Hvordan det fungerer: Eksempel
Tillat meg å bruke et enkelt eksempel for å forklare hvordan Group_Concat () -funksjonen fungerer. Tenk på bordet med et felt for røye som:
Lage tabell concat (verdi røye);La oss sette inn verdier i tabellen som vist i spørringen nedenfor:
Sett inn i Concat (Value) Values ('H'), ('E'), ('L'), ('L'), ('O');Hvis vi utfører en grunnleggende group_concat -operasjon på verdiene i tabellen, vil vi få et strengresultat som vist nedenfor:
Velg Group_Concat (distinkt verdi rekkefølge etter verdi ASC -separator "") fra Concat;Den resulterende verdien er:
+---------------------------------------------------------------+Vil du ha en annen måte å forstå hva som skjedde med resultatet gitt ovenfor?
Vi starter med å fjerne alle duplikatverdiene på grunn av MySQL -distinkte klausul som fjerner en L.
Deretter fortsetter vi å bestille etter stigende rekkefølge som definert i (ASC), som endrer strengen i form av
Helo -> ehloTil slutt utfører vi sammenkoblingsprosessen ved å bruke et rom som separator for de angitte verdiene, noe som resulterer i strengen e h l o fra h, e, l, l o.
Eksempel Bruk saker
La oss ta en ekte database og bruke den til å illustrere hvordan vi kan implementere Group_Concat () -funksjonen. I dette eksemplet vil vi bruke Sakila -databasen, og spesifikt adressetabellen fra Sakila -databasen.
Tenk på ressursen nedenfor for å laste ned databasen for eksemplene dine:
https: // dev.mysql.com/doc/indeks-annet.html
I adressetabellen til Sakila -databasen får du distriktskolonnen. Vi kan få alle de unike distriktene atskilt med et rør som vist i spørringen nedenfor:
Velg Group_Concat (Distinct District Order by District Separator "|") fra Sakila.Adressegrense 5;Spørringen over vil vise alle de forskjellige distriktene og bestille dem i stigende rekkefølge atskilt med et rør.
MERK: Group_concat () -funksjonen er en samlet funksjon. Derfor kreves det at du spesifiserer ordren etter uttalelse i funksjonen og ikke i SELECT -setningen.
Konklusjon
Mysql group_concat () -funksjon diskutert i denne opplæringen er en nyttig funksjon som lar deg lage unike, sorterte og organiserte data fra en tabell som kan inneholde duplikater og uordnede data.
Tenk på dokumentene eller våre andre MySQL -opplæringsprogrammer for å lære mer.