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

Floaten und Floaten löschen in der Übersichtsseite

1. Float: Der Hauptzweck besteht darin, den Effek...

5 JavaScript-Möglichkeiten zum Abflachen von Arrays

Inhaltsverzeichnis 1. Konzept der Array-Abflachun...

Vue-cli erstellt ein Projekt und analysiert die Projektstruktur

Inhaltsverzeichnis 1. Geben Sie ein Verzeichnis e...

Tutorial zum Ändern von Inline-Stilen von element.style

Vorwort Als wir den Stil der Webseite oben geschr...

Detaillierte Schritte zum Bereitstellen von lnmp unter Docker

Inhaltsverzeichnis Ziehen Sie ein CentOS-Image Ge...

Erste Schritte mit Nginx Reverse Proxy

Inhaltsverzeichnis Überblick Die Rolle des Revers...

Detailliertes Tutorial zur Installation von JDK1.8 unter Linux

1. Reinigung vor der Installation rpm -qa | grep ...