【发布时间】:2018-01-12 15:07:51
【问题描述】:
我在表中有以下数据
create table Manager(id int, managerid varchar(10) , managername varchar(50))
insert into Manager(id, managerid, managername)
values (1, 'A1', 'Mangesh'), (2, 'A''2', 'Sagar'), (3, '_C[%]3', 'Ah_mad'),
(4, 'A4', 'Mango'), (5, 'B5', 'Sandesh')
我正在使用存储过程根据给定的字符获取结果。其中一位用户想要使用c[%] 进行搜索。我可以用[%] 处理%,但如果字符串有[%],那么我找不到它。
我尝试了以下查询
declare @str varchar(100)='C[[%]'
SELECT m.*
FROM Manager m
WHERE m.managerid LIKE '%'+@str+'%'
这样我就能得到结果,但在这种情况下,输入只是C[%。我在存储过程参数中将% 替换为[%]。但如果输入是C[%],那么我的查询不会返回任何内容。
【问题讨论】:
-
问题不清楚。您是否正在寻找包含 c[%] 的 managerid?你试过 charindex 吗?
-
“我无法做到这一点” 不是问题描述。你尝试了什么?发生了什么?为什么错了?
-
请包含您用于搜索
c[%]的代码。我怀疑你需要寻找LIKE... ESCAPE功能虽然
标签: sql sql-server