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
Libérer: 2024-12-07 09:34:11
original
382 Les gens l'ont consulté

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, '');
Copier après la connexion

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 $$
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal