我有简单的选择查询:
Select * from ABC
where title like N'%[text] xxxxx%' => return nothing.
Select * from ABC
where title like N'%xxxxx%' => correct record '[text] xxxx'
我的表中有一些内容包含[xxx]的记录.....我必须将它们与数据库外部来源的其他内容进行比较,来源中的内容也可能包含方括号。
例如:我可以从其他来源获得数以千计的标题进行比较:
2种格式,只是不知道如何与数据库中的标题进行比较,因为我事先并不知道它的结构。
如何传入可能包含方括号但仍能获得正确结果的内容?
答案 0 :(得分:1)
Searching with special characters
SELECT *
FROM ABC
WHERE title LIKE N'%\[text] xxxxx%' ESCAPE '\'
答案 1 :(得分:1)
你需要像下面那样使用它
Select * from ABC
where title like N'%[[]text] xxxxx%'
在此处查看此相关的SO主题How can I escape square brackets in a LIKE clause?
答案 2 :(得分:1)
您可以使用[]包围特殊字符(或范围)。因此,如果您希望搜索包含任何括号,只需在where子句中使用“[[]”而不是“[”和“[]]”而不是“]”。
Select * from ABC
where title like N'%[[]text[]] xxxxx%'