Je hebt twee opties:
-
zet ze in
[
en]
. Dus:where pattern like '[%]'
Zoekt naar het percentageteken.Volledige lijst met tekens om te ontsnappen -
'_', '%', '[', ']'
met bijbehorende vervangingen'[_]', '[%]', '[[]', '[]]'
. Voorbeeldcode is te vinden in Escape-tekens ontsnappen werkt niet – SQL LIKE-operator -
gebruik een escape-teken dat waarschijnlijk niet in de string voorkomt, zoals een backtick:
where pattern like '`%' escape '`'
(Zie de syntaxis op MSDN - LIKE (Transact-SQL) .)
In beide gevallen zou ik willen voorstellen dat u de vervanging in de applicatielaag maakt, maar u kunt het ook in SQL doen als u dat echt wilt:
where pattern like replace(@pattern, '%', '[%]')
En het kan een goede zaak zijn om de eindgebruiker toegang te geven tot wildcards in termen van de gebruikersinterface.
Opmerking:er zijn nog een paar speciale tekens '-'
en '^'
in de LIKE-query, maar ze hoeven niet te worden geëscaped als u al aan het escapen bent voor '['
en ']'
.