mysql teilt eine Datenzeile basierend auf Kommas in mehrere Zeilen auf

mysql teilt eine Datenzeile basierend auf Kommas in mehrere Zeilen auf

Trennwirkung

-- Vor der Trennung
1,2,3,4
-- Nach der Trennung
1
2
3
4

Separate Befehlszeilen

WÄHLEN 
 Teilstring_index(Teilstring_index('1,2,3,4',',', b.help_topic_id + 1), ',', -1) Ergebnis
AUS 
 mysql.help_topic b
Wo 
 b.help_topic_id < (LÄNGE('1,2,3,4') - LÄNGE(ERSETZEN('1,2,3,4', ',', '')) + 1);

Erläuterung der Befehlszeile

help_topic selbst ist eine Mysql-Hilfe-Erklärungskommentartabelle, die zur Erklärung verschiedener Mysql-Begriffe verwendet wird. Da die Daten-ID dieser Tabelle von 0 an ansteigt, ist es für uns bequem zu zählen, aber die Version 8.0.17 hat nur 686 Daten. Wenn diese Zahl überschritten wird, müssen wir eine Tabelle anpassen

Es kann als temporäre Tabelle zum Zählen verwendet werden. Die Abfrageanweisung verwendet nur help_topic zum Zählen. Der überschüssige Teil sind tatsächlich fehlerhafte Daten.

b.help_topic_id < Gesamtanzahl der Zeilen nach der Trennung abrufen

b.help_topic_id < (LÄNGE('1,2,3,4') - LÄNGE(ERSETZEN('1,2,3,4', ',', '')) + 1)

Diese Anweisung ist eigentlich eine Durchquerung, help_topic_id beginnt bei 0 und steigt auf

Abfangen in der Reihenfolge, zuerst alle Zeichen vor dem n-ten Trennzeichen abfangen, dann das letzte Zeichen der Zeichenfolge abfangen

1 —— 1
1,2 —— 2
1,2,3 —— 3
1,2,3,4 —— 4

mysql.help_topic keine Berechtigungslösung

Die Funktion von mysql.help_topic besteht darin, die Daten aus der Funktion SUBSTRING_INDEX (also die durch das Trennzeichen getrennten Daten) zu verbinden, um ein kartesisches Produkt zu erstellen.

Wenn Sie keine Berechtigung zur Verwendung von mysql.help_topic haben, können Sie eine temporäre Tabelle erstellen, um eine Verbindung mit der Tabelle herzustellen, die Sie abfragen möchten.

Holen Sie sich die maximale Anzahl von Zeichenfolgen, in die das Feld aufgeteilt werden kann:

Wählen Sie MAX (LÄNGE (a. `name`) - LÄNGE (ersetzen (a. `name`, ',', '' )) + 1) von `test` a;

Erstellen Sie eine temporäre Tabelle und fügen Sie ihr Daten hinzu:

Beachten:

  • Die temporäre Tabelle muss eine Spalte mit automatisch inkrementierten Daten enthalten, beginnend bei 0 oder 1
  • Der Name der temporären Tabelle ist beliebig und es kann nur ein Feld geben
  • Die Menge der temporär darzustellenden Daten muss größer sein als MAX(LENGTH(a.name) - LENGTH(REPLACE(a.name, ',', '' )) + 1)

Beteiligte Funktionen

Teilstring_Index (Zeichenfolge, Trennzeichen, Anzahl)

Parametername erklären
str Die zu teilende Zeichenfolge
delim Trennzeichen, durch ein Zeichen getrennt
zählen Wenn „Anzahl“ eine positive Zahl ist, werden alle Zeichen vor dem n-ten Trennzeichen übernommen. Wenn „Anzahl“ eine negative Zahl ist, werden alle Zeichen nach dem n-ten Trennzeichen vom Ende her übernommen.

ersetzen(str, von_str, nach_str)

Parametername erklären
str Die zu ersetzende Zeichenfolge
from_str Die zu ersetzende Zeichenfolge
zu_str Die zu ersetzende Zeichenfolge

length(str) Ermittelt die Länge eines Strings

Dies ist das Ende dieses Artikels zum Aufteilen einer Datenzeile in mehrere Datenzeilen in MySQL auf der Grundlage von Kommas. Weitere Informationen zum Aufteilen einer Datenzeile in mehrere Zeilen in MySQL auf der Grundlage von Kommas finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • MySQL-String-Splitting-Beispiel (String-Extraktion ohne Trennzeichen)
  • MySQL-String-Aufteilungsvorgang (String-Abfangen mit Trennzeichen)
  • Vertikales und horizontales Aufteilen von MySQL-Tabellen
  • Beispiel-Tutorial zum Zusammenführen und Teilen von MySQL nach angegebenen Zeichen
  • Anwendungsbeispiele für MySQL-Interception- und Split-String-Funktionen
  • Zusammenfassung der Datenaufteilung in MySQL-Datenbanken: Unterbibliothek und Untertabelle
  • Allgemeine MySQL-Datenaufteilungsmethoden
  • Verwenden Sie Perl, um die Datentabelle (MySQL) aufzuteilen und die Dateninstanz zu migrieren

<<:  Anbieterpräfix: Warum brauchen wir ein Browser-Engine-Präfix?

>>:  Detaillierte Erklärung der HTML-Ereignisse „onfocus gain focus“ und „onblur lose focus“

Artikel empfehlen

Vue implementiert Login-Sprung

In diesem Artikelbeispiel wird der spezifische Co...

Eine kurze Erläuterung zum Anpassen der Hostdatei in Docker

Inhaltsverzeichnis 1. Befehl 2. docker-compose.ym...

So wird eine Select-Anweisung in MySQL ausgeführt

Inhaltsverzeichnis 1. MySQL aus einer Makroperspe...

CSS3-Randeffekte

Was ist CSS? CSS (Abkürzung für Cascading Style S...

So konfigurieren Sie /var/log/messages im Ubuntu-Systemprotokoll

1. Problembeschreibung Heute muss ich die Systemp...

Referenzschreiben im JS- und CSS-Stil

CSS: 1. <link type="text/css" href=&q...

Gängige Reparaturmethoden für die Trennung der MySQL Master-Slave-Replikation

Inhaltsverzeichnis 01 Problembeschreibung 02 Lösu...

MySQL-Trigger: Erstellen und Verwenden von Triggern

Dieser Artikel beschreibt anhand von Beispielen d...

So implementieren Sie eine verschachtelte if-Methode in Nginx

Nginx unterstützt weder verschachtelte if-Anweisu...

js, um die Funktion zum Hochladen von Bildern zu realisieren

Das Prinzip des Hochladens von Bildern auf dem Fr...

Detaillierte Erklärung des Unterschieds zwischen $router und $route in Vue

Wir verwenden normalerweise Routing in Vue-Projek...

Einführung in Keyword-Design-Methoden im Webdesign

Häufig ignorieren wir beim Erstellen der Homepage ...