Gruppe _concat -Funktion ist eine Gruppe von aggregierter Funktion, mit der Sie Spaltenwerte aus mehreren Zeilen in ein einzelnes Feld verkettet werden können. Es gibt eine Zeichenfolge zurück, wenn die festgelegte Gruppe einen oder No-Null-Spaltenwert enthält und einen Nullwert zurückgibt, wenn keiner gefunden werden kann.
In diesem Tutorial werden Sie unterrichtet, wie Sie MySQL Group_Concat () -Funktion verwenden, um Zeichenfolgen aus einer Gruppe mit mehreren Optionen zu kombinieren.
Grundnutzung
Wie bereits erwähnt, gibt diese Funktion ein String-Ergebnis mit den Werten der verketteten Nicht-Null-Werte oder einem Null zurück, wenn keine existiert.
Die allgemeine Syntax ist:
Group_Concat ([Different] expr [, expr…]Erläuterung
Aus der obigen Syntax können Sie feststellen, dass die Funktion Group_Concat MySQL -Klauseln und -Ergleen verwendet, um die verschiedenen Optionen anzugeben:
NOTIZ: Das von MySQL Group_Concat () generierte String -Ergebnis ist auf eine Länge beschränkt. Dieser Wert ist im System definiert und hat einen Standardwert von 1024. Sie können diesen Wert weltweit ändern oder ihn in der von Ihnen benötigten Sitzung festlegen.
Set [global | Sitzung] gruppe_concat_max_len = value;Betrachten Sie die folgende Referenz, um mehr zu erfahren:
https: // dev.Mysql.com/doc/refman/8.0/en/Server-System-Variablen.html#sysvar_group_concat_max_len
Wie es funktioniert: Beispiel
Erlauben Sie mir, ein einfaches Beispiel zu verwenden, um zu erklären, wie die Funktion Group_Concat () funktioniert. Betrachten Sie die Tabelle mit einem Feld für char als:
Tabelle concat (Wert char) erstellen;Fügen Sie Werte in die Tabelle ein, wie in der folgenden Abfrage gezeigt:
In concat (value) -Werte ('h'), ('e'), ('l'), ('l'), ('o') einfügen;Wenn wir in den Werten in der Tabelle eine grundlegende Gruppe gruppe_concat ausführen, erhalten wir ein String -Ergebnis, wie unten gezeigt:
Wählen Sie Group_Concat (Unterscheidungsreihenfolge nach Wert ASC -Separator "") aus concat;Der resultierende Wert ist:
+---------------------------------------------------------------+Möchten Sie einen anderen Weg, um zu verstehen, was mit dem oben angegebenen Ergebnis passiert ist?
Wir beginnen damit, alle doppelten Werte aufgrund der MySQL -Klausel zu entfernen, die einen l entfernt.
Als Nächst
Helo -> ehloSchließlich führen wir den Verkettungsprozess mit einem Speicherplatz als Trennzeichen für die festgelegten Werte durch, was zu der Zeichenfolge E H l o von h, e, l, l o führt.
Beispiel Anwendungsfälle
Nehmen wir eine echte Datenbank ein und verwenden sie, um zu veranschaulichen, wie wir die Funktion Group_Concat () implementieren können. In diesem Beispiel werden wir die Sakila -Datenbank und insbesondere die Addrückentelle aus der Sakila -Datenbank verwenden.
Betrachten Sie die folgende Ressource, um die Datenbank für Ihre Beispiele herunterzuladen:
https: // dev.Mysql.com/doc/index-other.html
In der Adresstabelle der Sakila -Datenbank erhalten Sie die Distriktspalte. Wir können alle einzigartigen Bezirke durch ein Rohr getrennt lassen, wie in der folgenden Abfrage gezeigt:
Wählen Sie Group_Concat (District District Order by District Separator "|") aus Sakila aus.Adressgrenze 5;Die obige Abfrage zeigt alle unterschiedlichen Bezirke an und bestellt sie in aufsteigender Reihenfolge, die durch ein Rohr getrennt ist.
NOTIZ: Die Funktion von Group_Concat () ist eine Aggregatfunktion. Daher ist es erforderlich, dass Sie die Reihenfolge nach Anweisung innerhalb der Funktion und nicht in der Auswahlanweisung angeben.
Abschluss
MySQL Group_Concat () -Funktion, die in diesem Tutorial diskutiert wird.
Betrachten Sie die Dokumente oder unsere anderen MySQL -Tutorials, um mehr zu erfahren.