背景:
SQL では、IN 句を使用して列の値を比較できます。一連の値に。特定のシナリオでは、値のリストを含む変数を IN 句に動的に渡したい場合があります。
問題:
SELECT ステートメントを含む SP があります。 IN 句を使用して、リストの特定の値に基づいて結果をフィルタリングします。ただし、値のリストを個別に指定するのではなく、単一の変数として渡す必要があります。
解決策:
変数を IN 句に渡すには、次のことを考慮してください。 FIND_IN_SET 関数を使用します。この関数は 2 つのパラメータを取ります:
変更されたクエリ:
SELECT product_id, product_price FROM product WHERE FIND_IN_SET(product_type, param);
パラメータ値の受け渡し:
呼び出し時SP に値のコンマ区切りリストを「param」変数の値として渡します。例:
EXEC SP @param = 'AA,BB,CC'
説明:
FIND_IN_SET 関数は、指定された列値がカンマ区切りリストで見つかった場合は 1 を返し、それ以外の場合は 0 を返します。この関数を使用すると、「param」変数に渡された値に基づいて結果を動的にフィルタリングできます。
以上が以下に、さまざまなレベルの具体性を備えたいくつかのタイトル オプションを示します。 **直接的かつ簡潔:** * **SQL の IN 句に変数を渡す方法** * **IN 句による動的フィルタリング: FI の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。