In den vorherigen Artikeln wurden die Ersetzungsfunktion (Replace) und die Segmentierungsfunktion (SubString) in MySQL vorgestellt. Heute werfen wir einen Blick auf die professionelle MySQL-Funktion „String-Verkettung“: concat. Wie immer gilt: Wenn Sie gute Vorschläge und Ideen haben, schreiben Sie sie bitte in die Kommentare. Wenn ich bei der Arbeit faulenze, werde ich die Erfahrungen mit Ihnen allen teilen~ 1. Verschiedene Verwendungen der Concat-Funktion 1-1. Funktion: concat(str1,str2,…) Die Concat-Funktion wird im Allgemeinen in der SELECT-Abfragesyntax verwendet, um den zurückgegebenen Feldinhalt zu ändern. Beispielsweise gibt es eine LOL-Heldeninformationstabelle wie folgt mysql> wähle * aus `LOL`; +----+---------------+--------------+-----------+ | ID | Heldentitel | Heldenname | Preis | +----+---------------+--------------+-----------+ | 1 | DBlade Schatten | Talon | 6300 | | 2 | X-Swift-Scout | Teemo | 6300 | | 3 | G Strahlende Dame | Lux | 1350 | | 4 | F Uhrwerkgeist | Orianna | 6300 | | 5 | Z Oberste Faust | Lee Sin | 6300 | | 6 | W: Schwertmeister | Einfach | 450 | | 7 | J Schneller Klingenmeister | Yasuo | 450 | +----+---------------+--------------+-----------+ 7 Zeilen im Satz (0,00 Sek.) Ich muss eine Spalte zurückgeben: Heldentitel – Heldennamedaten. Hier wird die Concat-Funktion wie folgt verwendet: SELECT CONCAT(hero_title,' - ',hero_name) als vollständiger Name, Preis von `LOL`; mysql> SELECT CONCAT(hero_title,' - ',hero_name) als vollständiger Name, Preis von `LOL`; +------------------------------+----------+ | vollständiger_Name | Preis | +------------------------------+----------+ | DBlade Shadow - Talon | 6300 | | X-Swift-Scout – Teemo | 6300 | | G Strahlende Dame - Lux | 1350 | | F Uhrwerkgeist - Orianna | 6300 | | Z Oberste Fist - Lee Sin | 6300 | | W Wujuejiansheng – Einfach | 450 | | J Schneller Schwertkämpfer – Yasuo | 450 | +------------------------------+----------+ 7 Zeilen im Satz (0,00 Sek.) Wenn in den gespleißten Parametern NULL vorhanden ist, wird NULL zurückgegeben; wie folgt: SELECT CONCAT(hero_title,NULL,hero_name) als vollständiger Name, Preis von „LOL“; mysql> SELECT CONCAT(hero_title,'NULL',hero_name) als vollständiger Name, Preis von `LOL`; +-------------------------------+----------+ | vollständiger_Name | Preis | +-------------------------------+----------+ | DBlade Shadow NULLTalon | 6300 | | X-Swift Scout NULL Teemo | 6300 | | G Radiant Lady NULL Lux | 1350 | | F Uhrwerkgeist NULL Orianna | 6300 | | Z Supreme Fist NULL Lee Sin | 6300 | | W NULL Yi | 450 | | J Schneller Schwertmeister NULL Yasuo | 450 | +-------------------------------+----------+ 7 Zeilen im Satz (0,00 Sek.) Entschuldigung, das Obige hat mein Bruder geschrieben, richtig ist Folgendes: mysql> SELECT CONCAT(hero_title,NULL,hero_name) als vollständiger Name, Preis von „LOL“; +--------------+------+ | vollständiger_Name | Preis | +--------------+------+ | NULL | 6300 | | NULL | 6300 | | NULL | 1350 | | NULL | 6300 | | NULL | 6300 | | NULL | 450 | | NULL | 450 | +--------------+------+ 7 Zeilen im Satz (0,00 Sek.) 1-2. Funktion: concat_ws(separator,str1,str2,…) Vollständiger Name der Funktion CONCAT_WS(): CONCAT mit Trennzeichen. Dabei handelt es sich um eine Sonderform von CONCAT(). Der erste Parameter (Trennzeichen) ist das Trennzeichen für die weiteren Parameter. Die Position des Trennzeichens liegt zwischen den beiden zu verkettenden Zeichenfolgen. Es ist zu beachten, dass:
OK, verwenden wir trotzdem die obige LOL-Tabelle, verketten die Felder und trennen sie durch Kommas: Wählen Sie concat_ws(',', Heldentitel, Heldenname, Preis) als vollständigen Namen, Preis von „LOL“; mysql> wähle concat_ws(',',Hero_Title,Hero_Name,Preis) als vollständigen Namen, Preis von „LOL“; +---------------------------------+--------+ | vollständiger_Name | Preis | +---------------------------------+--------+ | DBlade Shadow,Talon,6300 | 6300 | | X-Swift Scout, Teemo, 6300 | 6300 | | G Strahlende Dame, Lux, 1350 | 1350 | | F Uhrwerkgeist, Orianna, 6300 | 6300 | | Z Supreme Fist, Lee Sin, 6300 | 6300 | | W Wuju-Schwertmeister, einfach, 450 | 450 | | J Schneller Schwertkämpfer, Yasuo, 450 | 450 | +---------------------------------+--------+ 7 Zeilen im Satz (0,00 Sek.) Wenn der Verkettungsparameter nach dem Trennzeichen NULL ist, wird er direkt ignoriert und wirkt sich wie folgt nicht auf das Gesamtergebnis aus: Wählen Sie concat_ws(',',hero_title,NULL,hero_name) als vollständigen Namen, Preis von „LOL“; mysql> wähle concat_ws(',',hero_title,NULL,hero_name) als vollständigen Namen, Preis von „LOL“; +----------------------------+----------+ | vollständiger_Name | Preis | +----------------------------+----------+ | DBlade Shadow, Talon | 6300 | | X-Swift-Scout, Teemo | 6300 | | G Strahlende Dame, Lux | 1350 | | F Uhrwerk-Genie, Orianna | 6300 | | Z Supreme Fist, Lee Sin | 6300 | | W Wuju-Schwertmeister, einfach | 450 | | J Schneller Schwertkämpfer, Yasuo | 450 | +----------------------------+----------+ 7 Zeilen im Satz (0,00 Sek.) Wenn das Trennzeichen NULL ist, gibt das Ergebnis wie folgt NULL zurück: Wählen Sie concat_ws(NULL, Heldentitel, Heldenname, Preis) als vollständigen Namen, Preis von „LOL“; mysql> wähle concat_ws(NULL,hero_title,hero_name,price) als vollständigen Namen, Preis von „LOL“; +--------------+------+ | vollständiger_Name | Preis | +--------------+------+ | NULL | 6300 | | NULL | 6300 | | NULL | 1350 | | NULL | 6300 | | NULL | 6300 | | NULL | 450 | | NULL | 450 | +--------------+------+ 7 Zeilen im Satz (0,00 Sek.) 1-3. Funktion: group_concat(expr) group_concat ( [DISTINCT] Feldname [Sortieren nach Sortierfeld ASC/DESC] [Trennzeichen 'Trennzeichen'] ) Die Funktion group_concat wird normalerweise in Abfrageanweisungen mit „group by“ verwendet. group_concat ist im Allgemeinen im Abfrage-Rückgabeergebnisfeld enthalten. Sieht die Formel der Funktion group_concat kompliziert aus? Schauen wir uns die obige Formel an. Die Klammern [] sind optional und geben an, ob sie verwendet werden können oder nicht.
Okay, kommen wir zur spaßigen Testphase. Lasst uns diese LOL-Tabelle noch einmal verwenden, fragt nicht warum. Vielleicht ist das Jugend! Ich erinnere mich noch an das Jahr, als wir die ganze Nacht im Fünferteam spielten und während des großen Drachenkampfs im Internetcafé der Strom ausfiel ... Wieder abseits vom Thema. . Verzeihung. mysql> wähle * aus `LOL`; +----+---------------+--------------+-----------+ | ID | Heldentitel | Heldenname | Preis | +----+---------------+--------------+-----------+ | 1 | DBlade Schatten | Talon | 6300 | | 2 | X-Swift-Scout | Teemo | 6300 | | 3 | G Strahlende Dame | Lux | 1350 | | 4 | F Uhrwerkgeist | Orianna | 6300 | | 5 | Z Oberste Faust | Lee Sin | 6300 | | 6 | W: Schwertmeister | Einfach | 450 | | 7 | J Schneller Klingenmeister | Yasuo | 450 | +----+---------------+--------------+-----------+ 7 Zeilen im Satz (0,00 Sek.) Beispielsweise müssen wir Helden in unterschiedlichen Preisklassen unterscheiden. Wenn wir group_concat nicht verwenden, müssen wir möglicherweise order by verwenden, um sie zu unterscheiden. Wählen Sie * aus „LOL“, sortiert nach Preis absteigend; mysql> wähle * aus „LOL“, sortiere nach Preis absteigend; +----+---------------+--------------+-----------+ | ID | Heldentitel | Heldenname | Preis | +----+---------------+--------------+-----------+ | 1 | DBlade Schatten | Talon | 6300 | | 2 | X-Swift-Scout | Teemo | 6300 | | 4 | F Uhrwerkgeist | Orianna | 6300 | | 5 | Z Oberste Faust | Lee Sin | 6300 | | 3 | G Strahlende Dame | Lux | 1350 | | 6 | W: Schwertmeister | Einfach | 450 | | 7 | J Schneller Klingenmeister | Yasuo | 450 | +----+--------------+--------------+----------+ 7 Zeilen im Satz (0,00 Sek.) Aber das ist nicht sehr intuitiv. Ich möchte jede Zeile sehen. Was soll ich tun? SELECT GROUP_CONCAT(hero_title,' - ',hero_name Trennzeichen ',' ) als vollständiger Name, Preis von „LOL“ GROUP BY Preis ORDER BY Preis absteigend; Derzeit kann Ihnen die Funktion GROUP_CONCAT problemlos dabei helfen, dieses Problem zu lösen. Schauen Sie, ist es nicht bequem? Hinweis : Hier verknüpfe ich die drei Parameter (hero_title, ‚-‘, hero_name), setze das Trennzeichen auf ‚,‘, gruppe nach Preis und sortiere nach Preis. Die Wirkung ist wie folgt mysql> SELECT GROUP_CONCAT(hero_title,' - ',hero_name Trennzeichen ',' ) als vollständiger Name, Preis von `LOL` GROUP BY Preis ORDER BY Preis absteigend; +------------------------------------------------------------------------+----------+ | vollständiger_Name | Preis | +------------------------------------------------------------------------+----------+ | D Blades Shadow – Talon, X Swift Scout – Teemo, F Clockwork – Orianna, Z High Fist – Lee Sin | 6300 | | G Strahlende Dame - Lux | 1350 | | W Wujuejiansheng – Yi, J Schneller Schwertkämpfer – Yasuo | 450 | +------------------------------------------------------------------------+----------+ 3 Zeilen im Satz (0,00 Sek.) Wenn Sie nach Preis von klein nach groß sortieren möchten, müssen Sie nur das äußere ORDER BY wie folgt steuern: SELECT GROUP_CONCAT(hero_title,' - ',hero_name Trennzeichen ',' ) als vollständiger Name, Preis von `LOL` GROUP BY Preis ORDER BY Preis aufsteigend; mysql> SELECT GROUP_CONCAT(hero_title,' - ',hero_name Trennzeichen ',' ) als vollständiger Name, Preis von `LOL` GROUP BY Preis ORDER BY Preis aufsteigend; +-------------------------------------------------------------------------+-------+ | vollständiger_Name | Preis | +-------------------------------------------------------------------------+-------+ | W Wujuejiansheng – Yi, J Schneller Schwertkämpfer – Yasuo | 450 | | G Strahlende Dame - Lux | 1350 | | D Blades Shadow – Talon, X Swift Scout – Teemo, F Clockwork – Orianna, Z High Fist – Lee Sin | 6300 | +-------------------------------------------------------------------------+----------+ 3 Zeilen im Satz (0,00 Sek.) Wie verwenden Sie also die Sortierung nach Reihenfolge in der Funktion GROUP_CONCAT? Es wird zum Sortieren der gespleißten Felder verwendet, z. B. zum Sortieren und Spleißen gemäß hero_title, wie folgt: SELECT GROUP_CONCAT(hero_title,' - ',hero_name order by hero_title Separator ',' ) als vollständiger Name, Preis von „LOL“ GROUP BY Preis ORDER BY Preis aufsteigend; mysql> SELECT GROUP_CONCAT(hero_title,' - ',hero_name order by hero_title Trennzeichen ',' ) als vollständiger Name, Preis von `LOL` GROUP BY Preis ORDER BY Preis aufsteigend; +-------------------------------------------------------------------------+-------+ | vollständiger_Name | Preis | +-------------------------------------------------------------------------+-------+ | J Schneller Klingenmeister – Yasuo, W Infinity Blade Master – Yi | 450 | | G Strahlende Dame - Lux | 1350 | | D Klingenschatten – Talon, F Uhrwerkgeist – Orianna, X Schneller Späher – Teemo, Z Höchste Faust – Lee Sin | 6300 | +-------------------------------------------------------------------------+-------+ 3 Zeilen im Satz (0,00 Sek.) Nun, man kann sehen, dass die Concat-Funktion in MySQL immer noch sehr nützlich ist. Ich hoffe, Sie werden daran denken, wenn Sie ähnliche Bedürfnisse oder Verwirrungen haben! Oder Sie finden diesen Blog, der Ihnen weiterhilft! Dies ist das Ende dieses Artikels mit der detaillierten Erklärung zur Verwendung der MySQL-Verkettungsfunktion CONCAT. Weitere verwandte Inhalte zur MySQL-Verkettungsfunktion CONCAT finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Der Inhalt der Tabelle in HTML wird horizontal und vertikal in der Mitte angezeigt
>>: So lösen Sie das Problem unzureichender Berechtigungen beim Benutzerwechsel im Docker-Container
Der Vorgang der Installation der MySQL-Datenbank ...
1. Schreiben Sie zuerst eine Mysql-Link-Einstellu...
Inhaltsverzeichnis 1. existiert 1.1 Beschreibung ...
Was ist ein Deckungsindex? Das Erstellen eines In...
Ich habe gerade einen Alibaba Cloud-Host gekauft ...
1 Tomcat herunterladen und starten Gehen Sie auf ...
VMware-Vorbereitung CentOS-Vorbereitung, hier ist...
Es gibt ein auf dem Mac entwickeltes Projekt, das...
Was sind XHTML-Tags? XHTML-Tag-Elemente sind die ...
1. Laden Sie das Repository-Image herunter Docker...
Eine Transaktion ist eine logische Gruppe von Ope...
DNS (Domain Name Server) ist ein Server, der Domä...
Beispiel für das Zuschneiden einer Webseite von P...
Die JavaScript-Methode hasOwnProperty() ist die P...
1. Aktivieren Sie Prometheus-Telemetriedaten Stan...