MySQL Group Cacat for Saites

MySQL Group Cacat for Saites

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…]
[Bestellung von unsigned_integer | col_name | Ausdruck
[ASC | Desc] [, col_name…]]
[Separator Str_val])

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:

  1. UNTERSCHEIDBAR: Die unterschiedliche Klausel entfaltet die doppelten Werte in der festgelegten Gruppe, um den Verkettungsprozess zu erregen. Betrachten Sie unser Tutorial, in dem MySQL unterscheidet, um zu verstehen, wie es funktioniert.
  2. SORTIEREN NACH: Die nächste Klausel ist die Reihenfolge, mit der die Werte in einer bestimmten Reihenfolge sortiert werden. Die Reihenfolge kann entweder aufsteigen oder absteigen. Wenn keine Reihenfolge angegeben ist, formatiert MySQL die Werte in aufsteigender Reihenfolge.
  3. SEPARATOR: Diese Klausel legt die zwischen den Werten der Gruppe in den Verkettungsprozess eingefügte String buchstäblich eingesetzt. Standardmäßig verwendet MySQL ein Komma (,), um die Werte zu trennen.

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:

+---------------------------------------------------------------+
| Group_Concat (Unterscheidungsreihenfolge nach Wert ASC -Separator "") |
+---------------------------------------------------------------+
| E h l o |
+---------------------------------------------------------------+
1 Zeile in Set (0.01 Sek.)

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 -> ehlo

Schließ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.