postgresql db.raw,具有一个以上的参数,带有knex

lsmepo6l  于 2023-06-05  发布在  PostgreSQL
关注(0)|答案(2)|浏览(411)

这在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'])

我该如何做到这一点?

agyaoht7

agyaoht71#

你也可以这样做:

var params = {x1:1,dude:10};
return knex.raw("select * from foo where x1 = :x1 and dude = :dude",params);

这不是第一个例子,但它被记录为here

z9gpfhce

z9gpfhce2#

看起来最明显的快速解决方案是简单地重复数组元素。

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

相关问题