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