ホームページ >データベース >mysql チュートリアル >「NOT IN」句で使用するために MySQL 変数を正しくフォーマットするにはどうすればよいですか?
「NOT IN」リストを使用して MySQL クエリ内の特定の値を除外しようとする場合、除外値を変数に変えると便利な解決策になります。ただし、変数の形式が正しいことを確認することが重要です。
クエリに記載されているように、変数 '@idcamposexcluidos' を別の形式で割り当てようとしました:
ただし、これらの形式はいずれも期待どおりに機能しません。その理由は、「IN」句には単一の文字列ではなく個別の値が必要であるためです。したがって、クエリ:
WHERE id_campo not in (@idcamposexcluidos)
は実質的に:
WHERE id_campo not in ('817,803,495')
となり、これは誤りです。値は別の文字列リテラルとして指定する必要があります:
WHERE id_campo not in ('817','803','495')
この問題を解決するには、2 つのオプションがあります:
SET @idcamposexcluidos='817,803,495'; ... WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
FIND_IN_SET() 関数はインデックスの使用を損なう可能性があります。
以上が「NOT IN」句で使用するために MySQL 変数を正しくフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。