DECLARE @keyword varchar(100)
SET @keyword = '%%'
SET @keyword = REPLACE(@keyword,'\','\\')
SET @keyword = REPLACE(@keyword,'%','\%')
SET @keyword = REPLACE(@keyword,'_','\_')
SET @keyword = REPLACE(@keyword,'[','\[')
SET @keyword = REPLACE(@keyword,']','\]')
SELECT *
FROM (
SELECT string = 'abc\de' UNION ALL
SELECT string = 'abc%de' UNION ALL
SELECT string = 'abc_de' UNION ALL
SELECT string = 'abc[de' UNION ALL
SELECT string = 'abc]de' UNION ALL
SELECT string = 'abc[^d]e' UNION ALL
SELECT string = 'ab[c-d]e' UNION ALL
SELECT string = '2%%2'
) tmp
WHERE string LIKE '%' + @keyword + '%' ESCAPE '\'
通配符 含义
% 包含零个或更多字符的任意字符串。
_ 任何单个字符。
[ ] 指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符。
[^] 不在指定范围(例如 [^a - f])或集合(例如 [^abcdef])内的任何单个字符。