ホームページ >データベース >mysql チュートリアル >SQL Server でカンマ区切りの文字列内の値を効率的に検索するにはどうすればよいですか?
カンマ区切りの SQL Server 列内の特定の値の検索
SQL Server 2008 を使用している場合、カンマ区切りの値を含む列内で特定の値が存在する行を検索する必要がある場合があります。 課題は、文字列の完全な一致としてだけでなく、文字列内の任意の場所でこの値を見つけることにあります。
この問題を調べてみましょう:
サンプルテーブル:
<code class="language-sql"> CREATE TABLE DelimitedValues (id INT, ColumnName VARCHAR(100)); INSERT INTO DelimitedValues VALUES (1, 'Cat,Dog,Sparrow,Trout,Cow,Seahorse'), (2, 'Mouse');</code>
目的: ColumnName
に「Cat」や「Sheep」などの特定の値が含まれる行を特定します。
IN
のような標準メソッドは、カンマ区切りリスト内に埋め込まれた値を処理できないため、不十分です。より洗練されたアプローチが必要です。
強力なソリューションでは、文字列の連結と LIKE
演算子を使用します。
<code class="language-sql">SELECT id FROM DelimitedValues WHERE (',' + RTRIM(ColumnName) + ',') LIKE '%,' + @search + ',%'</code>
この手法により、検索値 (@search) がカンマで囲まれるようになり、リスト内の位置に関係なく検出が可能になります。 例:
ColumnName
は「猫、犬、雀、鱒、牛、タツノオトシゴ」を保持します@search
は「猫」このメソッドは、リストの先頭、中間、または末尾の値、および単一値のエントリなど、すべてのケースを確実に処理します。
以上がSQL Server でカンマ区切りの文字列内の値を効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。