记录未使用 like 子句过滤

use*_*339 4 sql-server

使用以下查询过滤记录:

select * from SearchRecord where searchkeyword1  like  '[%'
Run Code Online (Sandbox Code Playgroud)

也试过这个

select * from SearchRecord where searchkeyword1  like  '%[%'
Run Code Online (Sandbox Code Playgroud)

表中的记录包含这些值(如下所示,我需要最后 2 条记录,为什么这个简单的喜欢不会过滤记录)

"Affiliate" means
"Agent's Rate of Exchange" means
["Aggregate Total Commitments" means
["Agreed Security Principles" means
Run Code Online (Sandbox Code Playgroud)

sep*_*pic 12

您的搜索模式包含wildcard character [,您应该将其括在方括号中或ESCAPE character像这样使用:

declare @SearchRecord table (searchkeyword1 varchar(100));
insert into @SearchRecord values
('"Affiliate" means'),
('"Agent''''s Rate of Exchange" means'),
('["Aggregate Total Commitments" means'),
('["Agreed Security Principles" means');

select * 
from @SearchRecord 
where searchkeyword1  like  '![%' ESCAPE '!';

select * 
from @SearchRecord 
where searchkeyword1  like  '[[]%';
Run Code Online (Sandbox Code Playgroud)

所有这些都在这里描述: LIKE (Transact-SQL)