Utilizzando sqlite3, se la mia domanda èSqlite vincolante entro stringa letterale
SELECT * FROM table WHERE title LIKE '%x%'
abbinerà stringhe contenenti x
. Voglio fare x
un parametro associabile, come:
SELECT * FROM table WHERE title LIKE '%x?%'
Tuttavia, questo non funziona in quanto il modulo ''
una stringa letterale. C'è un modo per sfuggire allo ?
all'interno del letterale? Capisco che ho potuto costruire il parametro associabile a contenere il %
e quindi utilizzare
SELECT * FROM table WHERE title LIKE ?
ma questo sposta la responsabilità nel mio codice in termini di gestione di iniezioni SQL, piuttosto che l'interfaccia di collegamento. C'è una soluzione migliore per questo?
Non è solo sqlite; '||' è nello standard SQL; Postgres e Oracle seguono questo. MySQL e MSSQL usano rispettivamente 'CONCAT()' e '+', entrambi sono non standard. – ephemient