Gruppo _Concat La funzione è un gruppo per funzione aggregata che consente di concatenare i valori della colonna da più righe in un singolo campo. Restituisce una stringa se il gruppo set contiene un valore di colonna o senza null e restituisce un valore null se non è possibile trovare nessuno.
Questo tutorial ti insegnerà come utilizzare la funzione mysql group_concat () per combinare le stringhe da un gruppo con diverse opzioni.
Uso di base
Come abbiamo già detto, questa funzione restituisce un risultato stringa con i valori dei valori non nulli concatenati o un NULL se non esiste nessuno.
La sintassi generale è:
Group_concat ([distinto] expr [, expr…]Spiegazione
Dalla sintassi sopra, puoi vedere che la funzione Group_Concat utilizza clausole e vincoli MySQL per specificare le varie opzioni:
NOTA: Il risultato della stringa generato dalla funzione MySQL Group_Concat () è limitato a una lunghezza Il valore impostato nella variabile Group_Concat_max_len. Questo valore è definito nel sistema e ha un valore predefinito di 1024. È possibile modificare questo valore a livello globale o impostarlo nella sessione di cui hai bisogno.
Imposta [globale | Sessione] group_concat_max_len = value;Considera il riferimento di seguito per saperne di più:
https: // dev.mysql.com/doc/refman/8.0/en/server-system-variabili.html#sysvar_group_concat_max_len
Come funziona: esempio
Consentitemi di usare un semplice esempio per spiegare come funziona la funzione Group_Concat (). Considera la tabella con un campo per Char come:
Creare tabella concat (valore char);Inseriamo i valori nella tabella come mostrato nella query seguente:
Inserire in concat (valore) valori ('h'), ('e'), ('l'), ('l'), ('o');Se eseguiamo un'operazione di base Group_Concat sui valori nella tabella, otterremo un risultato della stringa come mostrato di seguito:
Seleziona Group_Concat (Distinto Value Order per Value Asc separator ") da Concat;Il valore risultante è:
+---------------------------------------------------------------+Vuoi un altro modo per capire cosa è successo al risultato sopra indicato?
Iniziamo rimuovendo tutti i valori duplicati a causa della clausola distinta MySQL che rimuove una L.
Successivamente, procediamo all'ordine per ordine ascendente come definito in (ASC), che altera la stringa sotto forma di
Helo -> ehloInfine, eseguiamo il processo di concatenazione usando uno spazio come separatore per i valori impostati, risultando nella stringa e h l o da h, e, l, l o.
Esempio di casi d'uso
Prendiamo un vero database e lo utilizziamo per illustrare come possiamo implementare la funzione Group_Concat (). In questo esempio, useremo il database Sakila e in particolare la tabella degli indirizzi dal database Sakila.
Considera la risorsa di seguito per scaricare il database per i tuoi esempi:
https: // dev.mysql.com/doc/indice-altro.html
Nella tabella degli indirizzi del database Sakila, otterrai la colonna del distretto. Possiamo separare tutti i distretti unici da un tubo come mostrato nella query seguente:
Seleziona Group_Concat (distinto ordine distrettuale per distretto separatore "|" da Sakila.limite di indirizzo 5;La query sopra visualizzerà tutti i distretti distinti e li ordinerà in ordine crescente separati da un tubo.
NOTA: La funzione Group_Concat () è una funzione aggregata. Pertanto, è necessario che si specifichi l'istruzione Order per.
Conclusione
La funzione MySQL Group_Concat () discussa in questo tutorial è una funzione utile che consente di creare dati univoci, ordinati e organizzati da una tabella che può contenere duplicati e dati non ordinati.
Considera i documenti o i nostri altri tutorial MySQL per saperne di più.