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>
Das Ziel besteht darin, diese Daten wie folgt umzustrukturieren:
<code>somethingA somethingB somethingC somethingElseA somethingElseB</code>
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>
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.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!