Passer des variables à une clause IN
Considérez une procédure stockée avec une instruction SELECT qui inclut une clause IN :
SELECT product_id, product_price FROM product WHERE product_type IN ('AA','BB','CC');
Si vous souhaitez renseigner les valeurs de la clause IN à partir d'une seule variable contenant une chaîne de valeurs, par exemple :
'AA,BB,CC'
Vous pourriez rencontrer des difficultés en utilisant cette approche. Voici une solution :
Au lieu d'essayer de transmettre la chaîne directement à la clause IN, transmettez-la comme valeur de paramètre au format suivant :
'AA,BB,CC'
Utilisez la fonction FIND_IN_SET pour déterminer si chaque valeur product_type est présente dans le paramètre d'entrée :
SELECT product_id, product_price FROM product WHERE FIND_IN_SET(product_type, param);
Dans cette instruction modifiée, param représente le paramètre d'entrée contenant la chaîne de valeurs.
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!