Máte dvě možnosti:
-
uzavřete je do
[
a]
. Takže:where pattern like '[%]'
Hledá znak v procentech. Úplný seznam znaků, které mají být escapovány -
'_', '%', '[', ']'
s odpovídajícími náhradami'[_]', '[%]', '[[]', '[]]'
. Ukázkový kód lze nalézt v Escapování znaku escape nefunguje – operátor SQL LIKE -
použijte únikový znak, který pravděpodobně nebude v řetězci, jako je backtick:
where pattern like '`%' escape '`'
(Viz syntaxi na MSDN – LIKE (Transact-SQL) .)
V obou případech bych navrhoval, abyste provedli substituci v aplikační vrstvě, ale můžete to udělat také v SQL, pokud opravdu chcete:
where pattern like replace(@pattern, '%', '[%]')
A poskytnout koncovému uživateli přístup k zástupným znakům může být dobrá věc z hlediska uživatelského rozhraní.
Poznámka:Existuje několik dalších speciálních znaků '-'
a '^'
v dotazu LIKE, ale není nutné je escapovat, pokud již escapujete '['
a ']'
.