Heim >Datenbank >MySQL-Tutorial >Wie teile ich eine durch Kommas getrennte Zeichenfolge mithilfe regulärer Ausdrücke in eine temporäre MySQL-Tabelle auf?
MySQL teilt durch Kommas getrennte Zeichenfolgen mithilfe von RegEx in temporäre Tabellen auf
MySQL verfügt nicht über eine dedizierte Funktion zum Teilen von Zeichenfolgen, sodass alternative Ansätze erforderlich sind. Eine Methode besteht darin, eine Teilung zu emulieren, indem eine benutzerdefinierte Funktion iteriert wird.
Benutzerdefinierte Teilungsfunktion
Die folgende Funktion teilt eine Zeichenfolge x, die an der Position pos durch delim getrennt ist:
CREATE FUNCTION SPLIT_STR( x VARCHAR(255), delim VARCHAR(12), pos INT ) RETURNS VARCHAR(255) RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos), LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1), delim, '');
Looping und Einfügen in eine temporäre Datei Tabelle
Um über die geteilte Zeichenfolge zu iterieren und sie in eine temporäre Tabelle einzufügen, verwenden Sie eine LOOP-Anweisung:
DELIMITER $$ CREATE PROCEDURE ABC(fullstr) BEGIN DECLARE a INT Default 0 ; DECLARE str VARCHAR(255); simple_loop: LOOP SET a=a+1; SET str=SPLIT_STR(fullstr,"|",a); IF str='' THEN LEAVE simple_loop; END IF; #Do Inserts into temp table here with str going into the row insert into my_temp_table values (str); END LOOP simple_loop; END $$
Hinweis:Verwenden Sie eine Skriptsprache wie PHP ist für solche Aufgaben möglicherweise effizienter, als sich ausschließlich auf MySQL zu verlassen.
Das obige ist der detaillierte Inhalt vonWie teile ich eine durch Kommas getrennte Zeichenfolge mithilfe regulärer Ausdrücke in eine temporäre MySQL-Tabelle auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!