在字符串中查找子字符串

时间:2016-08-18 10:10:20

标签: sql sql-server sql-server-2016

是否可以检查用户提供的字符串中是否包含SQL Server列中的特定子字符串?

示例:

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

据我了解,CONTAINS无法进行此类搜索。

编辑:

我有一个完全索引的文本,并且想要(通过最快的方法)搜索我提供的字符串是否包含列中存在的单词。

3 个答案:

答案 0 :(得分:2)

您可以使用LIKE

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

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

取决于你的意思,首先选择列中包含所提供字符串一部分的记录。第二个是相反的。

答案 1 :(得分:1)

只需在您要查找的字符串周围使用LIKE语法和%

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

这将返回表table中的所有行,其中列Column包含文本“some random string”。

答案 2 :(得分:0)

1)如果你想从某个字母开始获取数据,你可以在where子句中使用%this运算符

WHERE
Column LIKE "%some random string"

2)如果您想获取包含任何可以使用的字母的数据

WHERE
Column LIKE "%some random string%"

3)如果你想获得以某个字母结尾的数据,你可以使用

WHERE
Column LIKE "some random string%"