Contexte :
En SQL, la clause IN vous permet de comparer la valeur d'une colonne à un ensemble de valeurs. Dans certains scénarios, vous souhaiterez peut-être transmettre dynamiquement une variable contenant une liste de valeurs à la clause IN.
Problème :
Vous avez un SP avec une instruction SELECT qui utilise une clause IN pour filtrer les résultats en fonction de valeurs spécifiques d'une liste. Cependant, vous devez transmettre la liste des valeurs comme une seule variable plutôt que de les spécifier individuellement.
Solution :
Pour passer une variable à une clause IN, considérez en utilisant la fonction FIND_IN_SET. Cette fonction prend deux paramètres :
Requête modifiée :
SELECT product_id, product_price FROM product WHERE FIND_IN_SET(product_type, param);
Valeur du paramètre de passage :
Lors de l'appel le SP, transmettez la liste de valeurs séparées par des virgules comme valeur de la variable « param ». Par exemple :
EXEC SP @param = 'AA,BB,CC'
Explication :
La fonction FIND_IN_SET renvoie 1 si la valeur de colonne spécifiée se trouve dans la liste séparée par des virgules, et 0 sinon. En utilisant cette fonction, vous pouvez filtrer dynamiquement les résultats en fonction des valeurs transmises dans 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!