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

Das WeChat-Applet implementiert eine einfache Taschenrechnerfunktion

WeChat-Applet: Einfacher Rechner. Zu Ihrer Inform...

So beheben Sie den abnormalen Fehler ERROR: 2002 in MySQL

Kürzlich ist beim Starten von MySQL ein Fehler au...

So überwachen und löschen Sie abgelaufene Sitzungen in Tomcat

Vorwort Ich habe zufällig entdeckt, dass die halb...

Eine kurze Diskussion über die Docker-Compose-Netzwerkeinstellungen

Tutorial zur Netzwerknutzung Offizielle Website d...

HTML-Basis-URL-Tag

Seine Funktion besteht darin, einen globalen Stil ...

Details zur Verwendung regulärer Ausdrücke in MySQL

Inhaltsverzeichnis 1. Einleitung 2. Bereiten Sie ...

JS realisiert den Front-End-Paging-Effekt

In diesem Artikelbeispiel wird der spezifische JS...

So verwenden Sie CSS-Zähler, um geordnete Zahlenlisten zu verschönern

Beim Webdesign ist es sehr wichtig, eine organisi...

Einrichten von VMware vSphere in VMware Workstation (Grafisches Tutorial)

VMware vSphere ist die branchenführende und zuver...

Verwendung der Zabbix-API in einer Linux-Shell-Umgebung

Sie können es direkt in der Linux-Shell-Umgebung ...

Lösung für das Problem, dass Docker-Protokolle nicht abgerufen werden können

Als ich den Dienst täglich überprüfte und mir die...