是否可以检查用户提供的字符串中是否包含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