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