Im vorherigen Artikel habe ich ein tabellenübergreifendes Update geschrieben. Als ich das von mir geschriebene SQL sah, kam ich mir wie ein Idiot vor und schrieb über tabellenübergreifende Updates. Ein Jahr verging wie im Flug, und auch die beiden Mitarbeiter Es kommen neue Anforderungen, und zwar leise! ! ! Der Leiter möchte sehen, wer sich unter der jeweiligen Vorstellung verbirgt und verlangt gleichzeitig, dass die Namen dieser Personen durch Kommata zu einer Zeichenfolge aneinandergereiht werden, also folgendes Ergebnis erhalten: Wie verketten Sie Zeichenfolgen für eine bestimmte Spalte im Ergebnissatz? Der Protagonist strahlt hell✨ GROUP_CONCAT(Ausdruck) In der offiziellen MySQL-Dokumentation steht diese Funktion im Abschnitt „Aggregatfunktionen“. Wenn Sie nach einem bestimmten Feld gruppieren und verketten möchten, müssen Sie sie mit dem Schlüsselwort Definition Die Funktion gibt ein String-Ergebnis zurück, das die Verkettung der GROUP_CONCAT([DISTINCT] Ausdruck [,Ausdruck ...] [ORDER BY {unsigned_integer | Spaltenname | Ausdruck} [ASC | DESC] [,Spaltenname ...]] [SEPARATOR str_val]) Was? Diese Syntax sieht zu kompliziert aus. Keine Sorge. Ich werde sie anhand von Beispielen Schritt für Schritt erklären und überprüfen. Anwendungsfälle Erfüllen Sie zunächst die Voraussetzungen am Anfang des Artikels: SELECT Leistung, GROUP_CONCAT(Mitarbeitername) AS Mitarbeiter VON Mitarbeitern GROUP BY-Leistung; Zou ist das Ergebnis: Zu diesem Zeitpunkt sind die vom Leiter gestellten Anforderungen erfüllt 😜 Bleiben Sie bitte, mein Herr. Die von Ihnen bestellten Gerichte wurden noch nicht serviert … Wir sind ein internationales Team, unsere Heimatstädte sind auf der ganzen Welt Der Leiter möchte sich um seine Mitarbeiter kümmern und möchte überprüfen, wo die Heimatorte aller Mitarbeiter im Unternehmen liegen. Da die Mitarbeiter möglicherweise vom selben Ort kommen, ist das Schlüsselwort Wählen Sie GROUP_CONCAT (DISTINCT Heimatstadt) VON Mitarbeitern; Schauen wir uns die Ergebnisse an: Die Fürsorge der Führungskräfte ist überall ... Das Copywriting muss geändert werden. Die Sorgfalt des Leiters ist SELECT GROUP_CONCAT(DISTINCT Heimatstadt ORDER BY Heimatstadt DESC) AS 'Leitungspflegebereich' VON Mitarbeitern; -- Niemand verwendet Variablen wie ich, und es ist Chinesisch. Ich glaube, Sie sind verrückt. Hier können Sie sehen, dass das Standardtrennzeichen für die Funktion Das Standardtrennzeichen zwischen gruppierten Werten ist ein Komma (,). Um das Trennzeichen explizit anzugeben, verwenden Sie das Schlüsselwort SELECT GROUP_CONCAT(DISTINCT Heimatstadt ORDER BY Heimatstadt DESC SEPARATOR '!') AS 'Leitungspflegeregion' VON Mitarbeitern; SELECT GROUP_CONCAT(DISTINCT Heimatstadt SEPARATOR '') AS 'Leitungspflegebereich' VON Mitarbeitern; Das ist ziemlich fürsorglich, oder? Denken Sie gut darüber nach! ! ! Auch die Fürsorgefähigkeit des Leiters ist begrenzt. Die standardmäßige maximale Länge der verketteten Zeichenfolge beträgt 1024 Zeichen. Sie können die aktuelle Beschränkung durch die folgende Anweisung einsehen: Variablen wie „group_concat_max_len“ anzeigen; Die Fähigkeiten einer Führungskraft sind unbeständig, daher können wir diesen Wert flexibel festlegen. SETZEN [GLOBAL | SESSION] group_concat_max_len = Wert; SESSION: gültig für die aktuelle Sitzung GLOBAL: global gültig Nachdem diese Anweisung ausgeführt wurde, bleibt sie wirksam, bis MySQL neu gestartet wird. Nach dem Neustart von MySQL wird der Standardwert wiederhergestellt. Manchmal muss Trennen Sie den Vor- und Nachnamen des Verbrauchers mit einem Komma und dann mit einem WÄHLEN GROUP_CONCAT( CONCAT_WS(', ', KontaktNachname, KontaktVorname) TRENNZEICHEN ';') AUS Kunden; Hier ist die Verwendung der Funktion CONCAT_WS(). Sie ist sehr einfach. Probieren Sie es selbst aus ... Hinweis ⚠️ Die Funktion GROUP_CONCAT() gibt eine einzelne Zeichenfolge zurück, keine Werteliste. Dies bedeutet, dass wir das Ergebnis der Funktion GROUP_CONCAT() nicht in einem IN-Operator verwenden können, beispielsweise in einer Unterabfrage wie folgt: WÄHLEN ID, Name AUS Tabellenname WO Ich würde in GROUP_CONCAT(Ich würde); Zusammenfassen In vielen Fällen können wir mit der Funktion GROUP_CONCAT() nützliche Ergebnisse erzielen. Wir können sie auch mit anderen Funktionen kombinieren, um eine höhere Leistung zu erzielen. Das könnte Sie auch interessieren:
|
<<: Allgemeines Startskriptbeispiel für ein Linux-Java-Programm
>>: Tutorial zur Installation von Ubuntu 20.04 und NVIDIA-Treibern
Neue Fragen Kommen und gehen Sie in Eile. Seit de...
Ich spiele jetzt schon eine Weile mit Diagrammen ...
Wirkung: CSS: .s_Typ { Rand: keiner; Rahmenradius...
Ich lerne gerade MySQL. Ich bin ein kompletter Ne...
Dies ist ein sehr wichtiges Thema, nicht nur für ...
Frage Nicht genügend Speicher, wenn Docker Elasti...
Inhaltsverzeichnis Kurze Umfrage Langfristige Abf...
Überprüfen Sie die Transaktionsisolationsebene In...
Code kopieren Der Code lautet wie folgt: 1. Sina ...
Oft möchten wir in Linux eine Datei finden, wisse...
Canal ist ein Open-Source-Projekt von Alibaba, da...
Inhaltsverzeichnis 1. Laden Sie die MySQL-MSI-Ver...
Problemerklärung: Wenn Sie die CSS-Eigenschaft „a...
1. Verfeinern Sie den Selektor Durch die Verwendu...
Docker ist eine Open-Source-Container-Engine, mit...