Maison  >  Article  >  base de données  >  Comment transmettre des variables aux clauses IN dans SQL : une solution de contournement utilisant FIND_IN_SET

Comment transmettre des variables aux clauses IN dans SQL : une solution de contournement utilisant FIND_IN_SET

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-27 06:01:29523parcourir

How to Pass Variables to IN Clauses in SQL: A Workaround Using 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!

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