我使用以下查询来搜索句子中的某些文字
declare @a nvarchar(100)
set @a=N'%[ /\\@\&\*()\-\+\|\>?,\":;/、・¥—&*(-》>?,;“”〉\- ][public]'
declare @b nvarchar(50)
set @b='public property'
select @b where @b like '%' +@a+'%'
@b
中存储的句子中获取特殊字符或确切关键字。public
或&public
不是republic
@a
答案 0 :(得分:0)
[public]
匹配一个字符,它是eiter p,u,b,l,i或c。首先,您需要将其修复为public
。
至于之前的角色我认为排除你不想匹配的东西在这种情况下更容易。我建议:
declare @a nvarchar(100)
set @a=N'[^a-zA-Z]public'
declare @b nvarchar(50)
set @b=' public property'
select @b where @b like '%' +@a+'%'
相反,排除public
之前的所有字母。但是当公共是您@b
中的第一项时,会遇到问题,因为您要尝试匹配之前不是字母的内容。使该匹配成为可选项将导致您选择匹配字母中的%
。我认为如果不改变选择就无法解决这个问题。