Имате две възможности:
-
оградете ги в
[
и]
. И така:where pattern like '[%]'
Търси знака за процент. Пълен списък със знаци за екраниране -
'_', '%', '[', ']'
със съответните замествания'[_]', '[%]', '[[]', '[]]'
. Примерен код може да бъде намерен в Ескранирането на символа за екраниране не работи – SQL оператор LIKE -
използвайте екраниращ знак, който е малко вероятно да бъде в низа, като обратна отметка:
where pattern like '`%' escape '`'
(Вижте синтаксиса в MSDN - LIKE (Transact-SQL) .)
И в двата случая предлагам да направите замяната в приложния слой, но можете да го направите и в SQL, ако наистина искате:
where pattern like replace(@pattern, '%', '[%]')
И предоставянето на достъп на крайния потребител до заместващи символи може да е добро нещо по отношение на потребителския интерфейс.
Забележка:има още няколко специални знака '-'
и '^'
в заявката LIKE, но не е необходимо да бъдат екранирани, ако вече екранирате '['
и ']'
.