Чтобы использовать Like с частичным совпадением%, вы также можете сделать это: column like concat('%', :dangerousstring, '%')
с указанным параметром :dangerousstring
. Другими словами, использование явно неэкранированных знаков% в вашем собственном запросе, которые разделены и определенно не являются пользовательским вводом.
Редактировать: Альтернативный синтаксис конкатенации, который я обнаружил, заключается в использовании оператора конкатенации: ||, поэтому он станет простым:
where column like '%' || :dangerousstring || '%' etc
@ bobince упоминает здесь что:
The
Трудность
приходит, когда вы хотите разрешить буквальный символ %
или _
в
строка поиска, без использования ее в качестве подстановочного знака.
Так что это то, на что нужно обратить внимание при комбинировании лайков и параметризации.