Der unten stehende Herausgeber bringt Ihnen einen Artikel über MySQL-Methoden zum Konvertieren von Spalten in Zeilen und zum Zusammenführen von Feldern (unbedingt lesen). Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor, um einen Blick darauf zu werfen.
Datentabelle:
Spaltenumschaltung: max (Fall, wenn dann)
max---AggregationFunktionden Maximalwert annehmen
(Fall natürlich, wenn ' Chinesisch', dann Punkte, sonst 0 Ende) ---Urteil
als Sprache---Alias als Spaltenname
SELECT `name`, MAX( CASE WHEN course='语文' THEN score END ) AS 语文, MAX( CASE WHEN course='数学' THEN score END ) AS 数学, MAX( CASE WHEN course='英语' THEN score END ) AS 英语 FROM student GROUP BY `name` ;
Zusammenführungsfeld Anzeige: Unter Verwendung von group_cancat(course,":","score")
SELECT `name`, GROUP_CONCAT(course, ":", score) AS 成绩 FROM student GROUP BY `name`;
group_concat() erklärt das Handbuch: Diese Funktion gibt eine Verbindung mit einer Gruppe zurück String Ergebnis für einen Nicht-NULL-Wert.
Relativ abstrakt und schwer zu verstehen.
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
(d. h. den Feldnamen) bestimmt. Es muss einen Standard für die Gruppierung geben, der auf der Grundlage der durch „group by“ angegebenen Spalte gruppiert.
Die Funktion „group_concat“ sollte die Group-By-Anweisung intern ausführen. Das ist meine Vermutung.
1. Testaussage:
SELECT GROUP_CONCAT(`name`) FROM student GROUP BY `name`;
Das Ergebnis ist, herauszufinden, welche Werte im Namen gleich sind gleich, alle Listen Sie sie durch Kommas getrennt wie folgt auf:
group_concat('name')
2. Test:
SELECT GROUP_CONCAT(`name`) FROM student ;
Ergebnis:
group_concat('name')
Kann das Obige beweisen, dass group_concat nur dann eine Wirkung haben kann, wenn es zusammen mit der Anweisung „group by“ verwendet wird? Der eigentliche Test wird unten durchgeführt
3. TestKonstante wirkt sich auf die Konfiguration von group_concat() aus:
SET @@GROUP_CONCAT_MAX_LEN=4
Im Handbuch wird erwähnt, dass die Syntax für die Einstellung wie folgt lautet:
SET [SESSION | GLOBAL] group_concat_max_len = val;
Was ist der Unterschied zwischen den beiden?
SET @@global.GROUP_CONCAT_MAX_LEN=4; global可以省略,那么就变成了:SET @@GROUP_CONCAT_MAX_LEN=4;
4. Verwenden Sie die Anweisung
SELECT GROUP_CONCAT(`name`) FROM student;
, um Folgendes zu erhalten:
group_concat('name')
Fazit: Die Funktion group_concat() muss zusammen mit verwendet werden Gruppieren Sie 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 Gruppierungsklausel wie oben vorhanden ist, werden Liu Bei, Guan Yu, Zhang Fei, Liu Bei, Guan Yu, Zhang Fei, Liu Bei, Guan Yu, Zhang Fei angezeigt.
Wann wird diese Funktion eigentlich benötigt?
Wenn Sie eine Abfrage durchführen müssen, sieht das Ergebnis wie folgt aus: Der Gruppenname wird links angezeigt und alle Mitgliedsinformationen der Gruppe werden angezeigt rechts angezeigt. Mit dieser Funktion können Sie viele Dinge sparen.
Außerdem, wenn ich es so verwende:
SELECT `name`, GROUP_CONCAT(course, ":", score) AS 成绩 FROM student ;
Es macht nicht viel Sinn.
group_concat() Die Angabe einer Spalte ist der beste Fall. Wenn mehrere Spalten angegeben sind.
SELECT `name`, GROUP_CONCAT(course, ":", score) AS 成绩 FROM student GROUP BY `name`;
Dann sieht das angezeigte Ergebnis etwa so aus:
group_concat(course,":",score)
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Methode zum Konvertieren von MySQL-Spalten in Zeilen und zum Zusammenführen von Feldern (Bilder und Texte). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!