Maison >base de données >tutoriel mysql >Comment puis-je diviser des chaînes séparées par des virgules dans une table temporaire MySQL ?

Comment puis-je diviser des chaînes séparées par des virgules dans une table temporaire MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-07 09:34:11389parcourir

How Can I Split Comma-Separated Strings into a MySQL Temporary Table?

Diviser des chaînes séparées par des virgules dans une table temporaire dans MySQL

En utilisant MySQL, il n'est pas possible de diviser directement une chaîne séparée par des virgules dans une table temporaire à l'aide d'expressions régulières. En effet, MySQL ne dispose pas d'une fonction de fractionnement de chaîne intégrée.

Solutions de contournement

Le fractionnement direct n'étant pas réalisable, vous pouvez utiliser diverses méthodes de contournement :

1. Fractionnement à l'aide de fonctions personnalisées

Vous pouvez créer une fonction personnalisée dans MySQL pour diviser la chaîne en valeurs individuelles. Par exemple :

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, '');

2. Utiliser une boucle

Appelez la fonction personnalisée dans une boucle et incrémentez la position jusqu'à ce qu'une valeur vide soit renvoyé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;
      # Insert into temp table here with str going into the row
      insert into my_temp_table values (str);
   END LOOP simple_loop;
END $$

3. Intégration du langage de script

Vous pouvez également utiliser un langage de script tel que PHP pour diviser la chaîne et effectuer les opérations nécessaires.

Conclusion

Bien que MySQL ne dispose pas d'une fonction de chaîne divisée dédiée, ces méthodes de contournement vous permettent d'analyser efficacement les chaînes séparées par des virgules dans des tables temporaires. Choisissez l'approche qui correspond le mieux à vos exigences et préférences.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn