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

Wie teile ich durch Kommas getrennte Werte in MySQL in einzelne Zeilen auf?

Barbara Streisand
Freigeben: 2025-01-14 11:25:43
Original
528 Leute haben es durchsucht

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

Komma-getrennte Zeilen in SQL teilen

Frage:

Wie teile ich eine Spalte mit durch Kommas getrennten Werten in separate Zeilen in SQL (MySQL) auf?

Antwort:

MySQL bietet keine integrierte Funktion zum Aufteilen von durch Kommas getrennten Zeilenwerten. Sie können dies jedoch mit einer unkonventionellen Methode erreichen, die das Zählen von Zahlen und die SUBSTRING_INDEX()-Funktion von MySQL umfasst:

<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

Diese Abfrage verwendet die Funktion SUBSTRING_INDEX(), um einzelne Werte zu extrahieren, indem ein Komma als Trennzeichen und ein n-Wert als Teilungsposition angegeben werden. Zählzahlen werden mithilfe einer Unterabfrage generiert, die einen Zahlenbereich von 1 bis 100 erstellt, sodass Sie bis zu 100 getrennte Werte pro Zeile aufteilen können.

Verwenden Sie für die Methode der persistenten Zähltabelle die folgende Abfrage:

<code class="language-sql">SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(t.values, ',', n.n), ',', -1) value
FROM table1 t
CROSS JOIN tally n
WHERE n.n <= LENGTH(t.values) - LENGTH(REPLACE(t.values, ',', '')) + 1;</code>
Nach dem Login kopieren

Diese Methode bietet eine bessere Skalierbarkeit, wenn Sie eine große Anzahl von Zeilen mit durch Kommas getrennten Werten aufteilen müssen.

Das obige ist der detaillierte Inhalt vonWie teile ich durch Kommas getrennte Werte in MySQL in einzelne Zeilen auf?. 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