|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre régulier
![]() Inscription : juin 2007 Messages : 198 ![]() |
Bonjour,
Je voudrais savoir s'il y a un moyen simple de simuler une liste (tableau, array) comme argument d'une fonction ou d'une procédure, dans l'idée de ne faire qu'une seule fonction/procédure pour répondre à mes besoins, et côté serveur SQL pour soulager l'applicatif... Un petit exemple que je reprends d'un récent sujet que j'ai lançé : Soient 3 tables : element_name (id int, name varchar) single (id int, name varchar) assemblage (id int, element_name_id int, single_id int) avec element_name_id et single_id des clés étrangères sur les id respectivement des tables element_name et single. Exemple d'element_name : skateboard, voiture, moto, velo Exemple de single : guidon, volant, roue, frein, porte Je vais avoir comme "assemblage"s : skateboard/roue velo/roue velo/frein velo/guidon moto/roue moto/frein moto/guidon voiture/roue voiture/frein voiture/volant voiture/porte Je voudrais ajouter de nouveaux assemblages avec des elements deja existant. J'aimerais une procedure que j'appelerais de cette manière : Code :
Du style : Code :
ou bien, imaginer de concatener les elements dans le deuxième argument mais il faut trouver un moyen d'itérer sur ces arguments dans la fonction/procedure : Code :
|
||||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 848 ![]() |
salut,
oui tu concatène tes résultats avec 1 ou plusieurs séparateurs (1 ou plusieurs caractères) en une chaine de caractère ou tu les concatène de manière plus hiérarchique en xml (plutôt pour une utilisation externe à mysql ensuite) |
|
|
00
|
|
|
#3 | |
|
Membre régulier
![]() Inscription : juin 2007 Messages : 198 ![]() |
Citation:
De quels résultats parles-tu ? Pour l'instant, je n'ai pas de résultats mais juste des arguments à passer. Je connais la fonction CONCAT par contre je n'ai pas vu de SPLIT...comment découper ensuite la concaténation ? |
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 848 ![]() |
coté php par exemple
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#6 | |
|
Membre régulier
![]() Inscription : juin 2007 Messages : 198 ![]() |
Ah non, je voulais rester uniquement en procédural, sinon en effet je fais tout en Perl et là plus de problème...
Citation:
Mais c'est dingue tout de même qu'il y ait des fonctionnalités de ce type, si complexes, alors qu'il n'y a pas un simple "split(str, delim)" sur lequel on pourrait itérer !!! Par ce que avec cette solution XML, il faudrait que mon appel de procédure soit :Code :
call create_assemblage('bus','<a>roue</a><a>frein</a><a>volant</a><a>porte</a>') Code :
call create_assemblage('bus','roue|frein|volant|porte') |
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 848 ![]() |
je pense que ça vient du fait que mysql permet de convertir automatiquement les résultats renvoyés en xml plutôt que normalement...
![]() enfin ça date quand même seulement de la version 5.1.5
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com