Mysql implementiert drei Funktionen zum Feldspleißen

Mysql implementiert drei Funktionen zum Feldspleißen

Beim Exportieren von Daten in Operationen ist das Spleißen der Felder unvermeidlich. Wenn MySQL dies kann, kann viel Code gespart werden.

  • concat()
  • concat_ws()
  • Gruppe_Verkettung()

Mysql verfügt über mehrere Funktionen, die Felder verketten können.

concat()

Verwenden Sie leere Zeichenfolgen, um mehrere Felder zu einem Feld zu verketten

mysql> wähle concat(id, Typ) aus mm_content-Limit 10;
+------------------+
| concat(ID, Typ) |
+------------------+
| 100818Bild |
| 100824Bild |
| 100825Video |
| 100826Video |
| 100827Video |
| 100828Video |
| 100829Video |
| 100830Video |
| 100831Video |
| 100832Video |
+------------------+
10 Zeilen im Satz (0,00 Sek.)

Wenn jedoch ein beliebiger Feldwert NULL ist, ist das Ergebnis NULL.

mysql> wähle concat(id, Typ, Tags) aus mm_content-Limit 10;
+------------------------+
| concat(ID, Typ, Tags) |
+------------------------+
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
+------------------------+
10 Zeilen im Satz (0,00 Sek.)

concat_ws()

Wenn Sie in der obigen Methode ein Trennzeichen zum Teilen der Felder verwenden möchten, müssen Sie in die Mitte jedes Felds eine Zeichenfolge einfügen, was sehr mühsam ist.

concat_ws() kann das Trennzeichenproblem auf einmal lösen, und nur weil ein Wert NUll ist, sind nicht alle Werte NUll.

mysql> wähle concat_ws(' ', ID, Typ, Tags) aus mm_content-Limit 10;
+--------------------------------+
| concat_ws(' ', ID, Typ, Tags) |
+--------------------------------+
| 100818 Bild |
| 100824 Bild |
| 100825 Videos |
| 100826 Videos |
| 100827 Videos |
| 100828 Videos |
| 100829 Videos |
| 100830 Videos |
| 100831 Videos |
| 100832 Videos |
+--------------------------------+
10 Zeilen im Satz (0,00 Sek.)

Gruppe_Verkettung()

Der letzte Punkt ist erstaunlich. Unter normalen Umständen führt eine so geschriebene Anweisung definitiv zu einem Fehler.

mysql> wähle die ID aus der Testbenutzergruppe nach Alter;
FEHLER 1055 (42000): Ausdruck Nr. 1 der SELECT-Liste ist nicht in der GROUP BY-Klausel enthalten und enthält die nicht aggregierte Spalte „test_user.id“, die nicht funktional von den Spalten in der GROUP BY-Klausel abhängig ist. Dies ist nicht kompatibel mit sql_mode=only_full_group_by

Allerdings kann group_concat() andere Felder im gruppierten Zustand zu einer Zeichenfolge für die Abfrage zusammenfassen.

mysql> wähle group_concat(Name) aus der Testbenutzergruppe nach Alter;
+--------------------+
| Gruppen_Concat(Name) |
+--------------------+
| wenn, ning |
| wxnacy,gewinnen |
+--------------------+
2 Zeilen im Satz (0,00 Sek.)

Standardmäßig werden Kommas zum Trennen der Daten verwendet, wir können jedoch auch ein Trennzeichen angeben.

mysql> wähle group_concat(Namenstrennzeichen ‚‘) aus der Testbenutzergruppe nach Alter;
+----------------------------------+
| group_concat(Namenstrennzeichen ' ') |
+----------------------------------+
| wen ning |
| wxnacy gewinnt |
+----------------------------------+
2 Zeilen im Satz (0,00 Sek.)

Ordnen Sie die Saiten in einer bestimmten Reihenfolge an

mysql> wähle group_concat (Name sortiert nach ID, Beschreibungstrennzeichen ‚‘) aus Testbenutzergruppe nach Alter;
+---------------------------------------------------+
| group_concat(Name sortiert nach ID, Beschreibungstrennzeichen '') |
+---------------------------------------------------+
| Ning Wen |
| gewinne wxnacy |
+---------------------------------------------------+
2 Zeilen im Satz (0,00 Sek.)

Wenn Sie mehrere Felder verketten möchten, wird standardmäßig eine leere Zeichenfolge für die Verkettung verwendet. Wir können concat_ws() verwenden, um eine Ebene zu verschachteln.

mysql> wähle group_concat(concat_ws(',', id, name) Trennzeichen ' ') aus der Testbenutzergruppe nach Alter;
+------------------------------------------------------+
| group_concat(concat_ws(',', id, name) Trennzeichen ' ') |
+------------------------------------------------------+
| 1.wen 2.ning |
| 3,wxnacy 4,win |
+------------------------------------------------------+
2 Zeilen im Satz (0,00 Sek.)

Oben sind die Details der drei Funktionen aufgeführt, mit denen MySQL das Feldspleißen implementiert. Weitere Informationen zum MySQL-String-Spleißen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Implementierungsschritte für MySQL-Zusammenführungsergebnisse und horizontale Spleißfelder
  • Detaillierte Erklärung der MySQL-Zeichenfolgenverkettungsfunktion GROUP_CONCAT
  • Detailliertes Beispiel für die Verkettung mehrerer Felder in MySQL

<<:  JavaScript realisiert den Effekt der mobilen Modalbox

>>:  Analyse des Prozesses zur Implementierung eines Nginx+Tomcat-Clusters unter Windwos

Artikel empfehlen

Syntax-Alias-Problem basierend auf Löschen in MySQL

Inhaltsverzeichnis MySQL-Löschsyntax-Aliasproblem...

So richten Sie die Swap-Partition SWAP in Linux 7.7 ein

Die Swap-Partition des Linux-Systems, also die Sw...

Tutorial zum Migrieren von Projekten von MYSQL zu MARIADB

Bereiten Sie die Datenbank (MySQL) vor. Wenn Sie ...

SQL-Implementierung von LeetCode (181. Angestellte verdienen mehr als Manager)

[LeetCode] 181.Mitarbeiter verdienen mehr als ihr...

So fügen Sie Batchdaten unter Node.js in eine MySQL-Datenbank ein

Im Projekt (nodejs) müssen mehrere Daten gleichze...

Bootstrap 3.0 - Schaltflächenstil für Lernnotizen

In diesem Artikel wird hauptsächlich der Stil der...

MySQL 8.0.20 Installations-Tutorial mit Bildern und Text (Windows 64-Bit)

1: Download von der offiziellen MySQL-Website htt...