Nejsem uživatel Knex.js, ale při pohledu na dokumenty se zdá, že pomocí syntaxe objektů JavaScriptu Knex k definování predikátů dosahuje parametrizace.
Protože však používáte vestavěné funkce, musíte použít whereRaw
.
Podívejte se na dokumenty ( http://knexjs.org/#Builder-whereRaw ) a ( http://knexjs.org/#Raw-Bindings ) Myslím, že chcete udělat toto:
.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )
Knex nemá orWhereRaw
, takže pokud chcete logicky oddělit predikáty, měli byste použít longhand verzi:
term = '%' + term + '%';
.orWhere( knex.raw( 'question LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )
Poznámka ?
je pro poziční parametry a :term
je pro pojmenované parametry.