Heim > Datenbank > MySQL-Tutorial > Detaillierte Erläuterung der Methode zum Konvertieren von MySQL-Spalten in Zeilen und zum Zusammenführen von Feldern (Bilder und Texte)

Detaillierte Erläuterung der Methode zum Konvertieren von MySQL-Spalten in Zeilen und zum Zusammenführen von Feldern (Bilder und Texte)

黄舟
Freigeben: 2017-03-25 13:26:22
Original
1363 Leute haben es durchsucht

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:

Detaillierte Erläuterung der Methode zum Konvertieren von MySQL-Spalten in Zeilen und zum Zusammenführen von Feldern (Bilder und Texte)

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`
;
Nach dem Login kopieren

Detaillierte Erläuterung der Methode zum Konvertieren von MySQL-Spalten in Zeilen und zum Zusammenführen von Feldern (Bilder und Texte)

Zusammenführungsfeld Anzeige: Unter Verwendung von group_cancat(course,":","score")

SELECT
 `name`,
 GROUP_CONCAT(course, ":", score) AS 成绩
FROM
 student
GROUP BY
 `name`;
Nach dem Login kopieren
Nach dem Login kopieren

Detaillierte Erläuterung der Methode zum Konvertieren von MySQL-Spalten in Zeilen und zum Zusammenführen von Feldern (Bilder und Texte)

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`;
Nach dem Login kopieren

Das Ergebnis ist, herauszufinden, welche Werte im Namen gleich sind gleich, alle Listen Sie sie durch Kommas getrennt wie folgt auf:

group_concat('name')

Detaillierte Erläuterung der Methode zum Konvertieren von MySQL-Spalten in Zeilen und zum Zusammenführen von Feldern (Bilder und Texte)

2. Test:

SELECT
 GROUP_CONCAT(`name`)
FROM
 student
;
Nach dem Login kopieren

Ergebnis:

group_concat('name')

Detaillierte Erläuterung der Methode zum Konvertieren von MySQL-Spalten in Zeilen und zum Zusammenführen von Feldern (Bilder und Texte)

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
Nach dem Login kopieren

Im Handbuch wird erwähnt, dass die Syntax für die Einstellung wie folgt lautet:

SET [SESSION | GLOBAL] group_concat_max_len = val;
Nach dem Login kopieren

Was ist der Unterschied zwischen den beiden?

SET @@global.GROUP_CONCAT_MAX_LEN=4;
global可以省略,那么就变成了:SET @@GROUP_CONCAT_MAX_LEN=4;
Nach dem Login kopieren

4. Verwenden Sie die Anweisung

SELECT
GROUP_CONCAT(`name`)
FROM
student;
Nach dem Login kopieren

, um Folgendes zu erhalten:

group_concat('name')
Nach dem Login kopieren

Detaillierte Erläuterung der Methode zum Konvertieren von MySQL-Spalten in Zeilen und zum Zusammenführen von Feldern (Bilder und Texte)

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
;
Nach dem Login kopieren

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`;
Nach dem Login kopieren
Nach dem Login kopieren

Dann sieht das angezeigte Ergebnis etwa so aus:

group_concat(course,":",score)
Nach dem Login kopieren

Detaillierte Erläuterung der Methode zum Konvertieren von MySQL-Spalten in Zeilen und zum Zusammenführen von Feldern (Bilder und Texte)

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage