Laravel基于其他值更新

时间:2016-09-22 15:20:07

标签: mysql laravel-5

如何将其翻译为在laravel查询构建器中使用?

MYSQL

update mytable
set val = val +1
where id = 1

在laravel中

$res = DB::table('mytable')
->update(['val' => ?]);

由于

2 个答案:

答案 0 :(得分:4)

尝试:

DB::table('mytable')->where('id',1)->increment('val');

increment方法接受总和的第二个参数,如果您需要val = val + 2,则可以使用->increment('val', 2)

请参阅此参考:https://laravel.com/api/5.3/Illuminate/Database/Eloquent/Builder.html#method_increment

答案 1 :(得分:1)

如果你做的计算比增量更复杂,你也可以这样做:

DB::table('mytable')->where('id',1)->update(['val' => DB::raw('val * 3')]);

小心DB::raw - 它不会为你逃脱用户输入。