NodeJS 使用knexJS创建SQL查询

idv4meu8  于 2023-03-29  发布在  Node.js
关注(0)|答案(1)|浏览(225)

我有这个SQL查询:

UPDATE events SET quota_over = quota_over / 100 where quota_over >= 100;

如何将其转换为knexJS,我已经尝试过:

knex('events')
    .where('quota_over', '>=', 100)
    .update({quota_over: 'quota_over' / 100})

然而,结果却不如预期

iqxoj9l9

iqxoj9l91#

你所做的是在JavaScript中将“quota_over”字符串除以100,这将导致NaN。要根据SQL查询获得类似的结果,你可以使用knex.raw()来组成一个原始SQL表达式。
基于这个answer和这个文档,你可以这样做:

knex('events')
    .where('quota_over', '>=', 100)
    .update({quota_over: knex.raw('?? / 100', ['quota_over'])})

其中??是在knex.raw()内部绑定列名引用的一种方法。
希望能有所帮助!

相关问题