Heim > Datenbank > MySQL-Tutorial > Wie konvertiere ich durch Kommas getrennte Werte in einzelne Zeilen in MySQL?

Wie konvertiere ich durch Kommas getrennte Werte in einzelne Zeilen in MySQL?

Patricia Arquette
Freigeben: 2025-01-14 08:30:42
Original
608 Leute haben es durchsucht

How to Convert Comma-Separated Values into Individual Rows in MySQL?

Durch Kommas getrennte Werte in einzelne Zeilen in MySQL umwandeln

Diese Anleitung zeigt, wie Sie durch Kommas getrennte Werte innerhalb einer MySQL-Spalte in einzelne Zeilen konvertieren. Nehmen wir an, Sie haben eine Tabelle mit einer Spalte, die durch Kommas getrennte Daten wie diese enthält:

<code>somethingA,somethingB,somethingC
somethingElseA, somethingElseB</code>
Nach dem Login kopieren

Das Ziel besteht darin, diese Daten wie folgt umzustrukturieren:

<code>somethingA
somethingB
somethingC
somethingElseA
somethingElseB</code>
Nach dem Login kopieren

Diese SQL-Abfrage erreicht diese Transformation:

<code class="language-sql">SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(t.values, ',', n.n), ',', -1) value
FROM table1 t CROSS JOIN 
(
   SELECT a.N + b.N * 10 + 1 n
     FROM 
    (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
   ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
    ORDER BY n
) n
WHERE n.n <= LENGTH(t.values) - LENGTH(REPLACE(t.values, ',', '')) + 1;</code>
Nach dem Login kopieren

Erklärung:

Diese Abfrage nutzt geschickt eine dynamisch generierte Zahlentabelle (die Unterabfrage) und die Funktion SUBSTRING_INDEX(). SUBSTRING_INDEX() extrahiert Teilzeichenfolgen basierend auf einem Trennzeichen. Die Zahlentabelle stellt den Index für jeden durch Kommas getrennten Wert bereit. Die WHERE-Klausel stellt sicher, dass die Abfrage nur Werte bis zur tatsächlichen Anzahl der durch Kommas getrennten Elemente in jeder Zeile verarbeitet.

Wichtige Punkte:

  • SUBSTRING_INDEX(string, delimiter, count): Diese Funktion ist entscheidend. string ist die Eingabe, delimiter ist das Komma und count gibt an, welches Vorkommen des Trennzeichens verwendet werden soll. Ein count von -1 erhält alles nach dem letzten Vorkommen des Trennzeichens.
  • Die Unterabfrage erstellt eine temporäre Zahlentabelle. Sie können diese durch eine bereits vorhandene Zahlentabelle ersetzen, um die Leistung zu verbessern, wenn Sie diese Art von Vorgang häufig ausführen.
  • Die WHERE-Klausel passt die Anzahl der zurückgegebenen Zeilen basierend auf der Anzahl der Kommas in der ursprünglichen Zeichenfolge dynamisch an und verhindert so Fehler.

Diese Methode teilt durch Kommas getrennte Werte effektiv in einzelne Zeilen auf, was zu einem saubereren und besser verwaltbaren Datensatz führt.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich durch Kommas getrennte Werte in einzelne Zeilen in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage