Bonjour,

Je cherche à passer une collection de valeurs à une procédure stocké mysql.
un exemple tout simple, voila une procédure (qui ne sert a rien, juste pour l'example) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
create procedure test (param varchar(255),out test INT)
SQL security invoker
begin
SET NAMES 'latin1';
select count(*) into test from toto where tutu in (param);
end;
lors de l'appel, "param" vaut "5,7,3". Or mysql exécute bien la requête, sauf qu'il ne prend en compte que la première valeur de "param" et le count me renvoie 1 au lieu de 3.

On dirais qu'il s'arrête à la première virgule. J'ai fais pas mal de recherche, et je n'ai pas trouver de paramètre de type Array comme en postgresql entre autre. Bien évidement je ne peut pas séparé les variable et construire le in avec, car le nombre de valeur est dynamique.

Y'a t'il un moyen pour utiliser une série de valeurs séparé par des virgules en paramètre d'une procédure ? ou y'a t'il un autre moyen qu'un VARCHAR pour passé une collection de valeurs ?

Merci