Heim >Datenbank >MySQL-Tutorial >Wie kann die strSplit-Funktion von MySQL durch Kommas getrennte Zeichenfolgen in mehrere Zeilen umwandeln?

Wie kann die strSplit-Funktion von MySQL durch Kommas getrennte Zeichenfolgen in mehrere Zeilen umwandeln?

Barbara Streisand
Barbara StreisandOriginal
2024-12-06 15:39:11633Durchsuche

How Can MySQL's strSplit Function Transform Comma-Separated Strings into Multiple Rows?

Aufteilen von Strings in MySQL mit der strSplit-Funktion

Anders als die Frage im Duplikat-Thread geht es bei dieser Frage speziell darum, wie man eine durch Kommas getrennte Zeichenfolge aufteilt String-Spalte in mehrere Zeilen aufteilen. Um dies zu erreichen, stellt MySQL eine vielseitige gespeicherte Prozedur bereit, die die Funktion strSplit() nutzt.

Die Funktion strSplit() zerlegt eine bestimmte Zeichenfolge (x) basierend auf einem angegebenen Trennzeichen (delim) und einer bestimmten Position (pos). . Dazu wird die Teilzeichenfolge aus Position pos der durch Trennzeichen getrennten Zeichenfolge extrahiert, das Trennzeichen durch eine leere Zeichenfolge ersetzt und die resultierende Teilzeichenfolge zurückgegeben.

Zur Veranschaulichung betrachten wir die Eingabetabelle:

Col1 Col2
1 a,b,c
2 d,e

Um dies in die gewünschte Ausgabe umzuwandeln:

Col1 Col2
1 a
1 b
1 c
2 d
2 e

Wir definieren die gespeicherte Prozedur BadTableToGoodTable() als folgt:

CREATE PROCEDURE BadTableToGoodTable()
BEGIN
  DECLARE i INTEGER;

  SET i = 1;
  REPEAT
    INSERT INTO GoodTable (col1, col2)
      SELECT col1, strSplit(col2, ',', i) FROM BadTable
      WHERE strSplit(col2, ',', i) IS NOT NULL;
    SET i = i + 1;
    UNTIL ROW_COUNT() = 0
  END REPEAT;
END $$

Hier durchlaufen wir jedes Zeichen in der durch Kommas getrennten Zeichenfolge von Col2 mithilfe der REPEAT-Anweisung, extrahieren die Teilzeichenfolge mit strSplit() und fügen sie in eine neue Tabelle (GoodTable) ein.

Indem wir diese Schritte befolgen, können wir Zeichenfolgen in MySQL effektiv aufteilen und so durch Kommas getrennte Spalten in normalisiertere Daten umwandeln Strukturen.

Das obige ist der detaillierte Inhalt vonWie kann die strSplit-Funktion von MySQL durch Kommas getrennte Zeichenfolgen in mehrere Zeilen umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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