カンマ区切りの SQL Server 列の値を効率的に検索する
このガイドでは、SQL Server 2008 でカンマ区切り列内に特定の値が存在する行を効率的に見つける方法を説明します。 たとえば、「猫、犬、雀、鱒、牛、タツノオトシゴ」を含む列があるとすると、「猫」が存在するかどうかを判断する必要があります。
IN
キーワードは正確な値のみと一致するため、ここでは不適切です。 CONTAINS()
または LIKE
を単独で使用するメソッドは、部分一致または余分なカンマにより不正確な結果が生じる危険性があります。
解決策:
最も信頼性の高いアプローチは、文字列操作と LIKE
演算子を使用します。
WHERE (',' RTRIM(MyColumn) ',') LIKE '%,' @search ',%'
説明:
',' RTRIM(MyColumn) ','
) の前後にカンマを追加します。RTRIM()
は、列の値から末尾のスペースを削除し、偽陰性を防ぎます。LIKE
) を使用した %
演算子は、検索語の完全一致を保証し、リストの先頭、中間、または末尾の値を正しく処理し、無視します。先頭または末尾のカンマ。このメソッドは、位置や余分なカンマの存在に関係なく、カンマ区切りリスト内の検索値の正確な識別を保証します。
以上がSQL Server のカンマ区切り列内の値を効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。