2016-08-18 9 views
1

SQL Server列にある特定の部分文字列がユーザー提供の文字列に含まれているかどうかを確認できますか?文字列内で部分文字列を検索

例:

SELECT * FROM Table WHERE 'random words to check, which are in a string' CONTAINS Column 

私の理解から、CONTAINSは、検索のような種類を行うことはできません。

EDIT:

私は完全にインデックス付きのテキストを持っていると私が提供する文字列が列に存在する単語が含まれている場合(最速の方法で)検索したいと思います。

+0

は注意して使用することができますull Text Index](https://msdn.microsoft.com/en-us/library/ms187317.aspx?f=255&MSPPError=-2147217396)を使用して、「CONTAINS」を使用することができます。 – NickyvV

答えて

2

あなたがLIKE使用することができます。

SELECT * FROM YourTable t 
WHERE 'random words ....' LIKE '%' + t.column + '%' 

それとも

SELECT * FROM YourTable t 
WHERE t.column LIKE '%random words ....%' 

もしかして何依存し、最初の1列を提供する文字列の一部を持っているレコードを選択します。 2番目は反対です。

+0

私は最初のものを探しています、ただ最も速い方法を望んでいました。私が読んだところでは、 'LIKE'演算子はインデックス付きカラムの恩恵を受けることができないので、最速ではありません。 – Syphirint

1

ちょうどあなたが探している文字列の周り%と一緒LIKEの構文を使用します。

SELECT 
    * 
FROM 
    table 
WHERE 
    Column LIKE '%some random string%' 

これは、列Columnは、テキスト「いくつかのランダムな文字列」が含まれているテーブルtable内のすべての行を返します。

0

1)あなたは、データがいくつかの文字で始まる取得したい場合は、データが使用できる任意の文字が含まれている取得したい場合は、あなたのwhere句

WHERE 
Column LIKE "%some random string" 

2)にこのように、この演算子%を使用することができます

あなたには、いくつかの文字で終わるデータを取得したい場合 ​​

3)あなたは、[Fが必要であることを

WHERE 
Column LIKE "some random string%" 
関連する問題