Maison  >  Article  >  base de données  >  Comment transmettre une chaîne de valeurs à une clause IN dans une procédure stockée ?

Comment transmettre une chaîne de valeurs à une clause IN dans une procédure stockée ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 04:28:30916parcourir

How to Pass a String of Values to an IN Clause in a Stored Procedure?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn