带有knex

时间:2015-06-19 18:37:11

标签: postgresql knex.js

这实际上适用于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'])

我怎样才能做到这一点?

2 个答案:

答案 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