Salut à tous.
![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
clavier12AZQSWX
j'ai un champs string qui se comportent comme une liste de IDS, par exemple
On ne dit pas champs, mais colonne. Apprenez à utiliser le vocabulaire adéquate.
Je n'aime pas trop les sigles surtout quand leur signification peuvent être multiples.
Qu'est-ce que vous entendez par IDS ? (peut être Integrated Data Store comme le nom du SGBD sous BULL).
![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
clavier12AZQSWX
si je veux retirer l'élément 5 dans les champs 'liste', c-a-d supprimer '5' de la chaine liste , comment faire en une étape ?
L'astuce de Seb. fonctionne parfaitement, je l'ai testé, sauf qu'elle n'a pas la bonne syntaxe sous MySql :
UPDATE `test` SET liste =trim(both ',' from replace(concat(',',`liste`,','),',5,',','));
![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
clavier12AZQSWX
Mysql n'a-t-il pas une fonction intégrée pour gérer les champs de type liste ?
La colonne "liste" n'a pas lieu d'être car vous faites un mauvais usage des SET.
Un SET est une colonne qui va admettre une liste de valeurs, c'est-à-dire à choix multiple.
Un ENUM fonctionne presque pareil que le SET sauf qu'il admet qu'une seule valeur possible.
Voir la documentation MySql :
--> Type Set.
--> [https://dev.mysql.com/doc/refman/8.0/en/enum.html]TypeEnum[/url].
Il n'existe aucune fonction pour faire des substitutions car le but de ce stockage est de donner la liste des valeurs admissible à l'insertion.
D'autre part dans le type set comme dans le type enum, ce qui est stocké est la position de la valeur dans la liste.
Par exemple, si mon set est composé de ('a', 'b', 'c') et que je stocke 'c', la valeur stocké est 3.
Si vous avez besoin de connaitre si l'une de ces valeurs a été renseignées, vous devez utiliser la fonction "Find_In_Set()".
La bonne façon de gérer votre colonne "liste" puisqu'il ne s'agit pas d'une colonne à choix multiple comme le SET, est de suivre les recommandation de 'AL1_24.
Si les valeurs changent fréquemment et que vous avez besoin de les retrouver, vous ne devez pas les stocker mais les recalculer à l'aide d'une View.
Cela vous aurait évité d'avoir à trouver une astuce pour résoudre votre problème.
Cordialement.
Artemus24.
@+
Partager