2016-08-18 93 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%"