Maison >base de données >tutoriel mysql >Comment transmettre des variables aux clauses IN dans SQL : une solution de contournement utilisant FIND_IN_SET
Passer des variables aux clauses IN
Il peut être souhaitable de transmettre une variable contenant une liste de valeurs à une clause IN dans une instruction SQL . Cependant, cette fonctionnalité n'est pas intrinsèquement prise en charge dans certains langages de programmation. Cet article explore une solution de contournement à l'aide de la fonction FIND_IN_SET.
Exemple de scénario
Considérez la procédure stockée suivante avec une instruction SELECT :
<code class="sql">SELECT product_id, product_price FROM product WHERE product_type IN ('AA','BB','CC');</code>
Le l'objectif est de transmettre une seule variable, input_variables, contenant la chaîne de valeurs (« AA,BB,CC ») à la clause WHERE.
Utilisation de FIND_IN_SET
Pour Pour ce faire, transmettez la valeur du paramètre sous forme de chaîne séparée par des virgules : 'AA,BB,CC'. Ensuite, utilisez la fonction FIND_IN_SET :
<code class="sql">SELECT product_id, product_price FROM product WHERE FIND_IN_SET(product_type, param);</code>
La fonction FIND_IN_SET renvoie 1 si la chaîne spécifiée est trouvée dans l'ensemble, et 0 si elle ne l'est pas. Par conséquent, la clause WHERE renvoie uniquement les lignes où la colonne product_type correspond à l'une des valeurs de la variable param.
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!