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

Detaillierte Erklärung des Vue-Elements plus Mehrsprachenumschaltung

Inhaltsverzeichnis Vorwort Wie wechselt man zwisc...

Vue definiert private Filter und grundlegende Nutzung

Die Methoden und Konzepte privater und globaler F...

Detaillierte Erklärung zur Installation von PHP7 unter Linux

Wie installiere ich PHP7 unter Linux? 1. Installi...

Detaillierte Darstellung des MySQL 5.7.33-Installationsprozesses

Inhaltsverzeichnis Download des Installationspake...

Detaillierte Diskussion zum Thema mysqldump-Datenexport

1. Bei der Verwendung von mysqldump wird ein Fehl...

Basiswissen: Was bedeutet http vor einer Website-Adresse?

Was ist HTTP? Wenn wir eine Website durchsuchen m...

2017 neueste Version der Windows-Installation MySQL-Tutorial

1. Laden Sie zunächst die neueste Version von MyS...

Mehrere Möglichkeiten zum Senden von HTML-Formularen_PowerNode Java Academy

Methode 1: Absenden über den Absenden-Button <...

Analyse und Praxis des serverseitigen Rendering-Prinzips von React

Die meisten Leute haben schon einmal vom Konzept ...

Kurze Analyse von MySQL Union und Union All

In der Datenbank führen sowohl die Schlüsselwörte...

Zusammenfassung der XHTML-Tags auf Blockebene

* Adresse - Adresse * Blockzitat - Blockzitat * Mi...