我有这个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})
然而,结果却不如预期
iqxoj9l91#
你所做的是在JavaScript中将“quota_over”字符串除以100,这将导致NaN。要根据SQL查询获得类似的结果,你可以使用knex.raw()来组成一个原始SQL表达式。基于这个answer和这个文档,你可以这样做:
NaN
knex.raw()
knex('events') .where('quota_over', '>=', 100) .update({quota_over: knex.raw('?? / 100', ['quota_over'])})
其中??是在knex.raw()内部绑定列名引用的一种方法。希望能有所帮助!
1条答案
按热度按时间iqxoj9l91#
你所做的是在JavaScript中将“quota_over”字符串除以100,这将导致
NaN
。要根据SQL查询获得类似的结果,你可以使用knex.raw()
来组成一个原始SQL表达式。基于这个answer和这个文档,你可以这样做:
其中??是在
knex.raw()
内部绑定列名引用的一种方法。希望能有所帮助!