En utilisant sqlite3, si ma requête estSqlite obligatoire au sein chaîne littérale
SELECT * FROM table WHERE title LIKE '%x%'
Il correspondront des chaînes qui contiennent x
. Je veux faire x
un paramètre pouvant être lié, comme:
SELECT * FROM table WHERE title LIKE '%x?%'
Cependant, cela ne fonctionne pas puisque la forme ''
une chaîne littérale. Y at-il un moyen d'échapper à la ?
dans le littéral? Je comprends que je pourrais construire le paramètre bindable pour contenir la %
puis utilisez
SELECT * FROM table WHERE title LIKE ?
mais cela déplace la responsabilité dans mon code en termes de traitement des injections SQL plutôt que l'interface de liaison. Y a-t-il une meilleure solution pour cela?
Ce n'est pas seulement sqlite; '||' est dans le standard SQL; Postgres et Oracle suivent cela. MySQL et MSSQL utilisent 'CONCAT()' et '+' respectivement, les deux sont non standard. – ephemient