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