是否可以檢查用戶提供的字符串中是否包含SQL Server列中的特定子字符串?在字符串中查找子字符串
例子:
SELECT * FROM Table WHERE 'random words to check, which are in a string' CONTAINS Column
從我的理解,CONTAINS不能做這樣的搜索的。
編輯:
我有一個完全索引的文本和要搜索(用最快的方法),如果由我提供的字符串中包含存在於一列字。
是否可以檢查用戶提供的字符串中是否包含SQL Server列中的特定子字符串?在字符串中查找子字符串
例子:
SELECT * FROM Table WHERE 'random words to check, which are in a string' CONTAINS Column
從我的理解,CONTAINS不能做這樣的搜索的。
編輯:
我有一個完全索引的文本和要搜索(用最快的方法),如果由我提供的字符串中包含存在於一列字。
您可以使用LIKE
:
SELECT * FROM YourTable t
WHERE 'random words ....' LIKE '%' + t.column + '%'
或者
SELECT * FROM YourTable t
WHERE t.column LIKE '%random words ....%'
取決於那你的意思是,第一個選擇該列所提供的字符串的一部分記錄。第二個是相反的。
我正在尋找第一個,只是想要最快的方法。據我所知,'LIKE'算子不是最快的,因爲它不能從索引列中受益。 – Syphirint
只是串繞%
一起使用LIKE
語法您正在尋找:
SELECT
*
FROM
table
WHERE
Column LIKE '%some random string%'
這將在表table
其中列Column
包含文本「一些隨機字符串」返回所有行。
1)如果你想獲得的數據開始與一些字母,你可以在where子句中使用%這個操作符這樣
WHERE
Column LIKE "%some random string"
2)如果你想獲得的數據包含可用於
任何字母 3)如果你想獲得一些字母結尾的數據,可以使用
WHERE
Column LIKE "some random string%"
請注意,您需要一個[F您可以使用'CONTAINS',然後使用[文字索引](https://msdn.microsoft.com/en-us/library/ms187317.aspx?f=255&MSPPError=-2147217396)。 – NickyvV