Hai due opzioni:
-
racchiudili in
[
e]
. Quindi:where pattern like '[%]'
Cerca il carattere percentuale.Elenco completo di caratteri da cui eseguire l'escape:
'_', '%', '[', ']'
con sostituzioni corrispondenti'[_]', '[%]', '[[]', '[]]'
. Il codice di esempio può essere trovato in L'escape del carattere di escape non funziona:operatore SQL LIKE -
usa un carattere di escape che è improbabile che si trovi nella stringa, ad esempio un backtick:
where pattern like '`%' escape '`'
(Vedi la sintassi su MSDN - LIKE (Transact-SQL) .)
In entrambi i casi, ti suggerirei di effettuare la sostituzione nel livello dell'applicazione, ma puoi anche farlo in SQL se lo desideri:
where pattern like replace(@pattern, '%', '[%]')
Inoltre, fornire all'utente finale l'accesso ai caratteri jolly può essere una buona cosa in termini di interfaccia utente.
Nota:ci sono un paio di caratteri speciali in più '-'
e '^'
nella query LIKE, ma non è necessario eseguirne l'escape se stai già eseguendo l'escape di '['
e ']'
.