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