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 ']' .