Heim >Datenbank >MySQL-Tutorial >Wie kann die strSplit-Funktion von MySQL durch Kommas getrennte Zeichenfolgen in mehrere Zeilen umwandeln?
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!