MySQL-Konvertierung von Spalten in Zeilen, Methode zum Zusammenführen von Feldern (unbedingt lesen)

MySQL-Konvertierung von Spalten in Zeilen, Methode zum Zusammenführen von Feldern (unbedingt lesen)

Datenblatt:

Von Spalte zu Zeile: mit max(case when then)

max --- Aggregatfunktion nimmt den Maximalwert

(Fall natürlich, wenn 'Chinesisch', dann Punktzahl, sonst 0 Ende) --- Urteil

als Sprache --- Alias ​​als Spaltenname

WÄHLEN
 `Name`,
 MAX(
  FALL 
  WENN Kurs = 'Chinesisch' DANN
   Punktzahl
  ENDE
 ) AS Sprache,
 MAX(
  FALL 
  WENN Kurs = 'Mathematik' DANN
   Punktzahl
  ENDE
 ) AS Mathematik, 
 MAX(
  FALL 
  WENN Kurs = 'Englisch' DANN
   Punktzahl
  ENDE
 ) AS Englisch VON
 Student
GRUPPE NACH `Name`
; 

Seriendruckfeldanzeige: Verwenden Sie group_cancat(course,":","score")

WÄHLEN
 `Name`,
 GROUP_CONCAT(Kurs, ":", Punktzahl) AS Punktzahl FROM
 Student
GRUPPELN NACH
 `Name`; 

group_concat(), im Handbuch heißt es: Diese Funktion gibt ein String-Ergebnis mit nicht-NULL-Werten aus einer Gruppenverbindung zurück.
Es ist relativ abstrakt und schwer zu verstehen.

Einfach ausgedrückt berechnet group_concat(), welche Zeilen zur selben Gruppe gehören, und zeigt die Spalten an, die zur selben Gruppe gehören. Welche Spalten zurückgegeben werden, wird durch die Funktion bestimmt

Die Anzahl der Parameter (also der Feldname) ist ausschlaggebend. Es muss ein Standard für die Gruppierung vorhanden sein, d. h. eine Gruppierung gemäß der durch „group by“ angegebenen Spalte.

Ich vermute, dass die Funktion group_concat die Group-By-Anweisung intern ausführen sollte.

1. Testanweisung:

WÄHLEN
 GROUP_CONCAT(`Name`)
AUS
 Student
GRUPPELN NACH
 `Name`;

Das Ergebnis besteht darin, herauszufinden, welche Werte im Namen gleich sind. Wenn sie gleich sind, listen Sie sie alle auf, getrennt durch Kommas, wie folgt:

group_concat('Name')

2. Prüfung:

WÄHLEN
 GROUP_CONCAT(`Name`)
AUS
 Student
;

Ergebnis:

group_concat('Name')

Kann bewiesen werden, dass group_concat nur wirksam ist, wenn es mit einer group by-Anweisung verwendet wird? Das Folgende ist ein praktischer Test

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

Setzen Sie @@GROUP_CONCAT_MAX_LEN=4

Im Handbuch heißt es, dass die Syntax für die Einstellung wie folgt lautet:

SET [SESSION | GLOBAL] group_concat_max_len = Wert;

Was ist der Unterschied zwischen den beiden?

Setzen Sie @@global.GROUP_CONCAT_MAX_LEN=4;
global kann weggelassen werden, dann wird es: SET @@GROUP_CONCAT_MAX_LEN=4;

4. Verwenden Sie Aussagen

WÄHLEN
GROUP_CONCAT(`Name`)
AUS
Student;

Das Ergebnis ist:

group_concat('Name')

Fazit: Die Funktion group_concat() muss zusammen mit der Group-by-Anweisung verwendet werden, um den gewünschten Effekt zu erzielen.

Der Grund dafür ist wie folgt zu verstehen: group_concat() ruft alle Mitglieder ab, die zur Gruppe x gehören (die Spaltenparameter in der Funktion geben an, welche Felder angezeigt werden sollen). Woher kommt Gruppe X?

Wenn keine Gruppierung nach angegeben ist, ist nicht bekannt, welche Gruppe group_concat() zum Anzeigen der Mitglieder verwenden wird. Wenn oben also keine „Group By“-Klausel vorhanden ist, wird 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?

Angenommen, das Abfrageergebnis lautet wie folgt: Der Gruppenname wird links angezeigt und alle Mitgliedsinformationen unter der Gruppe werden rechts angezeigt. Die Nutzung dieser Funktion kann Ihnen viel Ärger ersparen.

Außerdem, wenn ich verwende:

WÄHLEN
 `Name`,
 GROUP_CONCAT(Kurs, ":", Punktzahl) AS Punktzahl FROM
 Student
;

Es macht nicht viel Sinn.

Die Angabe einer einzelnen Spalte ist der beste Ansatz für group_concat(). Wenn mehrere Spalten angegeben sind.

WÄHLEN
 `Name`,
 GROUP_CONCAT(Kurs, ":", Punktzahl) AS Punktzahl FROM
 Student
GRUPPELN NACH
 `Name`;

Das angezeigte Ergebnis sieht dann ungefähr so ​​aus:

group_concat(Kurs,":",Punktzahl)

Der obige Artikel zum Konvertieren von Spalten in Zeilen und Zusammenführungsfeldern in MySQL (unbedingt lesen) ist alles, was ich mit Ihnen teilen möchte. Ich hoffe, er kann Ihnen als Referenz dienen, und ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • So teilen und führen Sie mehrere Werte in einem einzigen Feld in MySQL zusammen
  • Implementierungsschritte für MySQL-Zusammenführungsergebnisse und horizontale Spleißfelder
  • Analyse der MySQL Union Merge-Abfragedaten und der Verwendung von Tabellenalias und Feldalias
  • Gruppenzeichenzusammenführung SQL-Anweisung führt eine der Zeichenfolgen nach einem bestimmten Feld zusammen (einfache Zusammenführung)
  • Ein Beispiel für das Zusammenführen eines Feldwertes in SQL Server
  • So führen Sie zwei Felder in MySQL zusammen
  • SQL-Funktion zum Zusammenführen eines Feldes

<<:  Eine kurze Analyse, wie Sie das Root-Passwort in Linux suse11 ändern können, wenn Sie es vergessen haben

>>:  Schnelle Deinstallation und Installation der Knotenumgebung eines Linux-Servers (einfacher Einstieg)

Artikel empfehlen

So verwenden Sie das Vue-Router-Routing

Inhaltsverzeichnis 1. Beschreibung 2. Installatio...

Ausführliche Erklärung zu MySQL vom Einstieg bis zum Aufgeben - Installation

Was Sie lernen werden 1. Softwareinstallation und...

Idea konfiguriert Tomcat zum Starten eines Webprojekts - Grafik-Tutorial

Tomcat konfigurieren 1. Klicken Sie auf „Konfigur...

Detaillierte Erläuterung der Verwendung von MySQL Explain (Analyseindex)

EXPLAIN zeigt, wie MySQL Indizes verwendet, um Au...

Detailliertes Beispiel für MySQL-Joint-Tabellen-Update-Daten

1.MySQL UPDATE JOIN-Syntax In MySQL können Sie di...

Detaillierte Erklärung der mysql.user-Benutzertabelle in Mysql

MySQL ist eine von mehreren Benutzern verwaltete ...

Implementierung der Breakpoint-Wiederaufnahme im Vue-Video-Player

In einem aktuellen Projekt musste ich die Funktio...

Analyse des Prinzips und der Erstellungsmethode der temporären MySQL-Tabelle

In diesem Artikel werden hauptsächlich das Prinzi...

Detaillierte Diskussion über Speicher und Variablenspeicher in JS

Inhaltsverzeichnis Vorwort JS Magische Zahl Numme...

Vue implementiert die Funktionen Vergrößern, Verkleinern und Ziehen

In diesem Artikelbeispiel wird der spezifische Co...

jQuery klickt auf den Liebeseffekt

In diesem Artikel wird der spezifische Code des j...

So verbinden Sie XShell und Netzwerkkonfiguration in CentOS7

1. Linux-Netzwerkkonfiguration Bevor Sie das Netz...