Maison  >  Article  >  base de données  >  Voici quelques options de titre, chacune mettant l'accent sur un aspect légèrement différent du problème : **Option 1 : Se concentrer sur les limites** * **Comment puis-je transmettre plusieurs valeurs à une clause IN dans SQL Server ?** **Ô

Voici quelques options de titre, chacune mettant l'accent sur un aspect légèrement différent du problème : **Option 1 : Se concentrer sur les limites** * **Comment puis-je transmettre plusieurs valeurs à une clause IN dans SQL Server ?** **Ô

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-25 13:29:02458parcourir

Here are a few title options, each emphasizing a slightly different aspect of the problem:

**Option 1:  Focus on Limitations**
* **How Can I Pass Multiple Values to an IN Clause in SQL Server?**

**Option 2:  Focus on the Solution**
* **Using FIND_IN_SET

Passer des variables à la clause IN

Dans SQL Server, une limitation courante survient lorsque l'on tente de transmettre une chaîne contenant plusieurs valeurs à une clause IN via une seule variable. Cela peut présenter des difficultés lors de l'interrogation conditionnelle de données sur la base d'un ensemble de valeurs.

Énoncé du problème

Considérez la procédure stockée suivante avec une instruction SELECT :

SELECT product_id, product_price
FROM product 
WHERE product_type IN ('AA','BB','CC');

L'objectif consiste à modifier cette requête pour accepter une variable contenant les valeurs séparées par des virgules.

Solution

La fonction FIND_IN_SET fournit une solution à ce problème. Cette fonction vérifie si une sous-chaîne spécifiée est trouvée dans une chaîne donnée. En utilisant cette fonction, vous pouvez réécrire la requête comme suit :

SELECT product_id, product_price
FROM product
WHERE FIND_IN_SET(product_type, param);

Ici, param représente la variable contenant les valeurs séparées par des virgules. Par exemple, si param contient la valeur « AA,BB,CC », la requête récupérera les lignes où la colonne product_type correspond à l'une de ces valeurs.

Remarque :

  • Assurez-vous que la valeur du paramètre est transmise sous forme de chaîne unique avec des valeurs séparées par des virgules (« AA,BB,CC »).
  • La fonction FIND_IN_SET n'est pas prise en charge dans tous les systèmes de bases de données. Par conséquent, il est recommandé de vérifier la compatibilité avant de mettre en œuvre cette solution.

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