Masz dwie możliwości:
-
umieść je w
[
i]
. A więc:where pattern like '[%]'
Szuka znaku procentowego.Pełna lista znaków do ucieczki —
'_', '%', '[', ']'
z odpowiednimi zamiennikami'[_]', '[%]', '[[]', '[]]'
. Przykładowy kod można znaleźć w Uciekanie znaku ucieczki nie działa – operator SQL LIKE -
użyj znaku zmiany znaczenia, który prawdopodobnie nie znajduje się w ciągu, na przykład znak wsteczny:
where pattern like '`%' escape '`'
(Zobacz składnię w witrynie MSDN — LIKE (Transact-SQL) .)
W obu przypadkach sugerowałbym, aby dokonać podstawienia w warstwie aplikacji, ale możesz to zrobić również w SQL, jeśli naprawdę chcesz:
where pattern like replace(@pattern, '%', '[%]')
A zapewnienie użytkownikowi końcowemu dostępu do symboli wieloznacznych może być dobrą rzeczą pod względem interfejsu użytkownika.
Uwaga:jest jeszcze kilka znaków specjalnych '-'
i '^'
w zapytaniu LIKE, ale nie trzeba ich zmieniać, jeśli już zmieniasz '['
i ']'
.