0

我有一个 SQL 过程,可以检查列中的某个字符串,例如

SELECT [text_field] FROM [dbo].[tbl_a] (NOLOCK) WHERE [text_field] LIKE '%search%'

但是如何限制此查询以显示结果%search%而不是 for searching

如果我搜索%happy%但不搜索,这同样适用于其他方式unhappy

4

4 回答 4

0

为什么不

SELECT [field] FROM [dbo].[TABLE] (NOLOCK) WHERE [field] = "search"
于 2013-11-15T06:33:59.187 回答
0

以下 SQL 语句选择 Country 包含模式“search”的所有客户:Why you don't use this?:

SELECT [text_field] FROM [dbo].[tbl_a] (NOLOCK) WHERE [text_field] = "search"

欲了解更多信息 LIKE

编辑

SELECT [text_field] FROM [dbo].[tbl_a] (NOLOCK) WHERE [text_field] LIKE '%search%' AND [textfield] NOT LIKE '%unhappy%' 
于 2013-11-15T06:32:38.867 回答
0

尝试使用 包含

SELECT [text_field] FROM [dbo].[tbl_a] WHERE Contains([text_field],'search')

仅当列在全文索引中时,此查询才可用。text-field您必须为您的column分配全文索引。

这里

于 2013-11-15T07:28:04.373 回答
0

我最终使用

SELECT [textfield] FROM [tbl_a] (NOLOCK) WHERE [textfield] like '%[^a-z]search[^a-z]%';

我先查询

WHERE [textfield] like '%search%'

然后我从该结果中创建一个包含“搜索”的所有单词的列表接下来我循环选择的单词,例如“搜索”而不是“研究”

于 2013-11-15T09:29:30.570 回答