Question :
Est-il possible d'analyser un chaîne séparée par des virgules dans une table MySQL temporaire en utilisant la méthode régulière expressions ?
Réponse :
Bien que MySQL ne dispose pas d'une fonction intégrée pour le fractionnement des chaînes, diverses solutions de contournement existent. Une approche implique des fonctions personnalisées et des mécanismes de boucle pour décomposer la chaîne en ses composants.
Fonction personnalisée pour le fractionnement de chaîne :
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, '');
Boucle et incrémentation la fonction personnalisée :
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 $$
Cette approche vous permet d'analyser la chaîne divisée et d'insérer dynamiquement les composants dans une table temporaire utilisant les capacités de bouclage de MySQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!