Heim > Datenbank > MySQL-Tutorial > Wie kann ich durch Kommas getrennte Werte in einer MySQL-String-Spalte in mehrere Zeilen aufteilen?

Wie kann ich durch Kommas getrennte Werte in einer MySQL-String-Spalte in mehrere Zeilen aufteilen?

Patricia Arquette
Freigeben: 2024-11-30 09:29:14
Original
711 Leute haben es durchsucht

How Can I Split Comma-Separated Values in a MySQL String Column into Multiple Rows?

Mysql String Split: Zeilen mit durch Kommas getrennten Werten erweitern

In dieser Frage sucht der Benutzer nach einer Lösung zum Konvertieren einer Tabelle, die einen solchen enthält Zeichenfolgenspalte mit durch Kommas getrennten Werten in eine neue Tabelle mit mehreren Zeilen, wobei die Werte durch Kommas aufgeteilt werden. Auch wenn die Frage angeblich kein exaktes Duplikat eines vorhandenen Threads ist, weist sie dennoch Ähnlichkeiten auf.

Um dieser Anforderung gerecht zu werden, kann eine gespeicherte Prozedur verwendet werden:

DELIMITER $$

CREATE FUNCTION strSplit(x VARCHAR(65000), delim VARCHAR(12), pos INTEGER) 
RETURNS VARCHAR(65000)
BEGIN
  DECLARE output VARCHAR(65000);
  SET output = REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos)
                 , LENGTH(SUBSTRING_INDEX(x, delim, pos - 1)) + 1)
                 , delim
                 , '');
  IF output = '' THEN SET output = null; END IF;
  RETURN output;
END $$


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 $$

DELIMITER ;
Nach dem Login kopieren

Diese gespeicherte Prozedur wird initialisiert eine ganzzahlige Variable i. Es durchläuft jeden Zeichenfolgenwert in der Spalte „col2“ und verwendet dabei die Funktion „strSplit“, um die entsprechende Teilzeichenfolge an Position i zu extrahieren. Die extrahierte Teilzeichenfolge stellt einen der durch Kommas getrennten Werte dar.

Die Prozedur wird fortgesetzt und i für jede Iteration erhöht, bis keine Nicht-Null-Teilzeichenfolgen mehr vorhanden sind. Dadurch wird sichergestellt, dass alle durch Kommas getrennten Werte aufgeteilt und in die neue Tabelle eingefügt werden.

Zusammenfassend stellt diese gespeicherte Prozedur eine robuste Lösung zum Konvertieren einer Tabelle mit durch Kommas getrennten Werten in eine Tabelle mit mehreren Zeilen dar es einfacher, die Daten zu manipulieren und zu analysieren.

Das obige ist der detaillierte Inhalt vonWie kann ich durch Kommas getrennte Werte in einer MySQL-String-Spalte in mehrere Zeilen aufteilen?. 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