Используя sqlite3, если мой запросSqlite связывания в строковый литерал
SELECT * FROM table WHERE title LIKE '%x%'
Это будет соответствовать строки, содержащие x
. Я хочу сделать x
связываемого параметр, как:
SELECT * FROM table WHERE title LIKE '%x?%'
Однако, это не работает, так как ''
Сформировать строку. Есть ли способ избежать ?
в литеральном? Я понимаю, что я мог бы построить связываемый параметр, чтобы содержать %
, а затем использовать
SELECT * FROM table WHERE title LIKE ?
но это перемещает ответственность в мой код с точкой зрения обработки инъекции SQL, а не интерфейс привязки. Есть ли лучшее решение для этого?
Это не просто sqlite; '||' находится в стандарте SQL; Postgres и Oracle следуют этому. MySQL и MSSQL используют 'CONCAT()' и '+' соответственно, оба являются нестандартными. – ephemient