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

Details zur Verwendung regulärer Ausdrücke in MySQL

Inhaltsverzeichnis 1. Einleitung 2. Bereiten Sie ...

So überwachen Sie die Linux-Speichernutzung mit einem Bash-Skript

Vorwort Auf dem Markt sind zahlreiche Open-Source...

Tutorial zur Installation der komprimierten MySQL8-Paketversion unter Win10

1 Laden Sie MySQL8 von der offiziellen Website he...

So verwenden Sie @media in mobilen adaptiven Stilen

Allgemeiner Handy-Stil: @media alle und (Ausricht...

Javascript implementiert einfache Navigationsleiste

In diesem Artikel wird der spezifische Code von J...

mysql installer community 8.0.12.0 grafische anleitung zur installation

Dieses Tutorial beschreibt die Installation der M...

21 Best Practices zur MySQL-Standardisierung und -Optimierung!

Vorwort Jede gute Angewohnheit ist ein Schatz. Di...

Vue+SSH-Framework zur Realisierung von Online-Chat

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

Ein tiefes Verständnis der spitzen Klammern in Bash (für Anfänger)

Vorwort Bash verfügt über viele wichtige integrie...

React implementiert eine mehrkomponentige Wertübertragungsfunktion über Conetxt

Die Wirkung dieser Funktion ist ähnlich wie vue的p...