Heim  >  Artikel  >  Datenbank  >  Zusammenfassung der Verwendung der Funktion „group_concat()“ in MySQL

Zusammenfassung der Verwendung der Funktion „group_concat()“ in MySQL

怪我咯
怪我咯Original
2017-03-30 10:13:311515Durchsuche


Das Beispiel in diesem Artikel beschreibt die Verwendung der Funktion mysql group_concat(). Geben Sie es als Referenz an alle weiter. Die Details lauten wie folgt:

group_concat(), im Handbuch heißt es: Diese Funktion gibt einen mit einem Nicht-NULL-Wert zurück der Verbindung aus einer Gruppe >StringErgebnis. Relativ abstrakt und schwer verständlich.

Um es auf einfache Weise zu verstehen, ist es tatsächlich so: group_concat() berechnet, welche Zeilen zur gleichen Gruppe gehören und zeigt die Spalten an, die zur gleichen Gruppe gehören. Welche Spalten zurückgegeben werden sollen, wird durch den Funktionsparameter (der Feldname ist) bestimmt. Gruppe muss einen Standard haben, der darin besteht, gemäß der durch Gruppe von angegebenen Spalte zu gruppieren.

Die Funktion „group_concat“ sollte die Group-By-Anweisung intern ausführen. Das ist meine Vermutung.

1. Testaussage:

SELECT group_concat(town) FROM `players` group by town

Das Ergebnis ist, herauszufinden, welche Werte in der Stadt gleich sind sie alle. Listen Sie sie durch Kommas getrennt wie folgt auf:

group_concat(town)

Peking, Peking

Changsha

2. Testen :

SELECT group_concat( town )
FROM players

Ergebnis:

group_concat(town)

Changsha, Peking, Peking,

Kann das oben Gesagte beweisen? dass group_concat nur wirksam sein kann, wenn es gleichzeitig mit der Anweisung „group by“ verwendet wird? Das Folgende ist ein tatsächlicher Test

3. Testen Sie die Auswirkung von Konstanten auf die Konfiguration von group_concat( ):

SET @@GROUP_CONCAT_MAX_LEN=4

Die im Handbuch erwähnte Syntax für die Einstellung lautet wie folgt:

SET [SESSION | GLOBAL] group_concat_max_len = val;

Was ist der Unterschied zwischen den beiden?

SET @@global.GROUP_CONCAT_MAX_LEN=4;

global kann weggelassen werden, dann lautet es: SET @@GROUP_CONCAT_MAX_LEN=4;

4. Verwenden Sie die Anweisung

SELECT group_concat(town) FROM `players`

Das Ergebnis ist:

group_concat(town)

Changsha, Beijing, Changsha, Beijing

Schlussfolgerung: Die Funktion group_concat() muss zusammen mit verwendet werden die Gruppierung nach Anweisung, um den gewünschten Effekt zu erzielen.

Der Grund kann wie folgt verstanden werden: group_concat() ruft alle Mitglieder ab, die zur Gruppe x gehören (die Spaltenparameter in der Funktion geben an, welche Felder angezeigt werden müssen). Woher kam Gruppe x? Wenn keine Gruppe nach angegeben ist, gibt es keine Möglichkeit zu wissen, welche Gruppe group_concat() die Mitglieder entsprechend anzeigt. Wenn daher keine Gruppierung nach-Klausel wie oben vorhanden ist, werden Changsha und Beijing angezeigt.

Wann wird diese Funktion eigentlich benötigt?

Angenommen, das Abfrageergebnis lautet wie folgt: Der Gruppenname wird links angezeigt und alle Mitgliedsinformationen der Gruppe werden rechts angezeigt. Mit dieser Funktion können Sie viele Dinge sparen.

Außerdem, wenn ich es so verwende: SELECT group_concat( name, sex ) FROM `players` town. Es macht nicht viel Sinn. Der beste Fall ist, dass group_concat() eine Spalte angibt. Wenn mehrere Spalten angegeben sind. Dann sieht das Anzeigeergebnis etwa so aus:

group_concat(name,sex)

Wang Tao, Wang Xiaoming männlich, Liu Huinv, Shu Ming weiblich

Das obige ist der detaillierte Inhalt vonZusammenfassung der Verwendung der Funktion „group_concat()“ in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn