这实际上适用于knex:
knex.raw('select * from users where id = ?', [1])
我试图使用多个值作为参数,重复其中一些。像这样:
knex.raw('select * from users where id = 1? and name = 2? and firstName = 2?', [1, 'someName'])
我怎样才能做到这一点?
答案 0 :(得分:1)
看起来显而易见的快速解决方案是简单地重复数组元素。
knex.raw('select * from users where id = 1? and name = 2? and firstName = 3?', [1, 'someName', 1])
我不了解knex,但这个解决方案也没有错。
修改
另一种方法是通过像kiwi这样的库使用简单的字符串插值:
var interpolateObject = {
id: 'some_id',
name: 'some_name',
firstName: 'some_first_name'
};
var query = Kiwi.compose(
"select * from users where id = %{id} and name = %{name} and firstName = %{firstName}",
interpolateObject
);
knex.raw(query);
结帐kiwi.js
答案 1 :(得分:0)
你也可以这样做:
var params = {x1:1,dude:10};
return knex.raw("select * from foo where x1 = :x1 and dude = :dude",params);
这不是第一个例子,但记录在案here。