2016-08-18 92 views
1

是否可以檢查用戶提供的字符串中是否包含SQL Server列中的特定子字符串?在字符串中查找子字符串

例子:

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

從我的理解,CONTAINS不能做這樣的搜索的。

編輯:

我有一個完全索引的文本和要搜索(用最快的方法),如果由我提供的字符串中包含存在於一列字。

+0

請注意,您需要一個[F您可以使用'CONTAINS',然後使用[文字索引](https://msdn.microsoft.com/en-us/library/ms187317.aspx?f=255&MSPPError=-2147217396)。 – NickyvV

回答

2

您可以使用LIKE

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

或者

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

取決於那你的意思是,第一個選擇該列所提供的字符串的一部分記錄。第二個是相反的。

+0

我正在尋找第一個,只是想要最快的方法。據我所知,'LIKE'算子不是最快的,因爲它不能從索引列中受益。 – Syphirint

1

只是串繞%一起使用LIKE語法您正在尋找:

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

這將在表table其中列Column包含文本「一些隨機字符串」返回所有行。

0

1)如果你想獲得的數據開始與一些字母,你可以在where子句中使用%這個操作符這樣

WHERE 
Column LIKE "%some random string" 

2)如果你想獲得的數據包含可用於

任何字母 ​​

3)如果你想獲得一些字母結尾的數據,可以使用

WHERE 
Column LIKE "some random string%"