Du har to muligheder:
-
omslutt dem i
[
og]
. Så:where pattern like '[%]'
Søger efter procenttegn. Fuld liste over tegn, der skal escapes -
'_', '%', '[', ']'
med tilsvarende erstatninger'[_]', '[%]', '[[]', '[]]'
. Eksempelkode kan findes i Escaping af escape-tegnet virker ikke – SQL LIKE Operator -
brug et escape-tegn, der sandsynligvis ikke er i strengen, såsom et backtick:
where pattern like '`%' escape '`'
(Se syntaksen på MSDN - LIKE (Transact-SQL) .)
I begge tilfælde vil jeg foreslå, at du laver substitutionen i applikationslaget, men du kan også gøre det i SQL, hvis du virkelig vil:
where pattern like replace(@pattern, '%', '[%]')
Og at give slutbrugeren adgang til jokertegn kan være en god ting i forhold til brugergrænsefladen.
Bemærk:der er et par specialtegn mere '-'
og '^'
i LIKE-forespørgslen, men de behøver ikke escapes, hvis du allerede escaper '['
og ']'
.