我有一个SQL过程,用于检查列中的某个字符串,如
SELECT [text_field] FROM [dbo].[tbl_a] (NOLOCK) WHERE [text_field] LIKE '%search%'
但是,如何限制此查询以显示%search%
的结果,而不是searching
的结果?
如果我搜索%happy%
但不搜索unhappy
答案 0 :(得分:0)
以下SQL语句选择具有包含“search”模式的Country的所有客户: 为什么你不使用它?:
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%'
答案 1 :(得分:0)
为什么不
SELECT [field] FROM [dbo].[TABLE] (NOLOCK) WHERE [field] = "search"
答案 2 :(得分:0)
尝试使用 Contains
SELECT [text_field] FROM [dbo].[tbl_a] WHERE Contains([text_field],'search')
此查询仅在列位于全文索引中时可用。您必须为text-field
列分配全文索引。
答案 3 :(得分:0)
我最终使用
SELECT [textfield] FROM [tbl_a] (NOLOCK) WHERE [textfield] like '%[^a-z]search[^a-z]%';
我先查询
WHERE [textfield] like '%search%'
然后我创建一个包含该搜索结果的所有单词的列表 接下来,我循环选定的单词,例如'搜索'但不是'研究'