2017-05-29 43 views
1

我使用knex用Node.js的我想要做一个数学查询 (我想添加+1到已经存在的值)MySQL的knex数学运算

我想这样做在knex

UPDATE fares SET fare=fare + 70 

这是我在knex查询,我得到的数据库中的

knex('table').update({ fares: 'fares' + 70}).then(function() {}); 

回答

0

在knex是0它的只是操作为string plus number,将其更改为:

knex('table').update({ fares: '`fares` + 70'}).then(function() {}); 
2

试试这个:

knex('table').update({ 
    fares: knex.raw('?? + 70', ['fares']) 
}) 
+0

也是如何传递变量而不是硬编码的70 knex.raw('?? + number',['fares']); ?谢谢! –

+0

你可以参考文档http://knexjs.org/ – abdulbarik

2

由于表名是 '票价',然后选择恰当的答案应该是:

var number = 70; 
knex('fares') 
    .update({ 
     fare: knex.raw(`?? + ${number}`, ['fare']) 
    }) 
    .then((result) => { 
     console.log(result); 
    }); 

看?你可以通过你的任何值现在这个数字

0

你不需要使用.raw(),虽然它会正常工作。有内置的能力使用.increment()递增。请参阅:doc link

样品从文档:

knex('accounts') 
    .where('userid', '=', 1) 
    .increment('balance', 10) 

...,并使用你的表/字段名,并为更新量的值的变量。

knex('fares') 
    .increment('fare', fareIncrementAmount) 

快乐编码!