Mysql sous-chaîne d'extraction à l'aide de délimiteur
Je veux extraire les sous-chaînes d'une chaîne de caractères dans mysql. La chaîne contient plusieurs sous-chaînes séparées par des virgules(','). J'ai besoin d'extraire ces sous-chaînes en utilisant toutes les fonctions de mysql.
Par exemple :
Table Name: Product
-----------------------------------
item_code name colors
-----------------------------------
102 ball red,yellow,green
104 balloon yellow,orange,red
Je veux choisir les couleurs de champ et d'en extraire des sous-chaînes comme le rouge,le jaune et le vert comme séparés par des virgules.
item_code,le nom et les couleurs sont les champs de la table Produit et les valeurs sont item_code nom des couleurs 102 boule rouge,vert,bleu
OriginalL'auteur Bibin Jose | 2016-01-25
Vous devez vous connecter pour publier un commentaire.
Un double possible: Split de la valeur d'un champ à deux
Malheureusement, MySQL ne dispose pas d'une scission de la fonction string.
Comme dans le lien ci-dessus indique qu'il y a Définis par l'utilisateur fonction Split.
Une version plus détaillée pour récupérer les données peuvent être les suivantes:
Dans un tel cas, vous devrez créer une Procédure Stockée et l'utilisation
for
boucle pour parcourir la longueur de la chaîne sous forme de jeton par','
Le code ci-dessus fonctionne pour moi lorsque je l'utilise dans une procédure stockée à l'aide d'une boucle.
pourquoi ne pas vous poster le code qui fonctionne pour vous, ici, de sorte que vous pouvez nous aider... je ne suis pas en mesure de savoir comment vous pouvez utiliser la boucle pour obtenir ce.
Je crois que j'ai trouvé un petit problème. Si les couleurs de la colonne contient seulement deux couleurs: "rouge,jaune" par exemple, au lieu de "rouge,jaune,vert" – alors le résultat de la requête sera le rouge, le jaune et le jaune... Et si les couleurs de la colonne contient juste "rouge", alors le résultat sera le rouge, le rouge et le rouge.
OriginalL'auteur Sameer Mirji
Vérifier l'utilisation de SPLIT_STR fonction ici à la ligne 64 à 69
OriginalL'auteur Kshitij Satpute