Laravel查询生成器批量更新-当前值+另一个值之和

u5rb5r59  于 2022-12-01  发布在  其他
关注(0)|答案(1)|浏览(98)

我知道我们可以使用Laravel查询构建器的update()方法进行批量更新:

DB::table('my_table')
    ->where('created_at', '>=', '2000-01-01')
    ->update(['column' => 10]);

这相当于以下查询:

UPDATE my_table SET column = 10 WHERE created_at >= '2000-01-01'

如果我想将该列的值增加10,而不是设置一个固定值,该怎么办?
这就是我在SQL中的意思:

UPDATE my_table SET column = column + 10 WHERE created_at >= '2000-01-01'
kyks70gy

kyks70gy1#

你可以简单地使用Db::raw方法:

DB::table('my_table'
  ->where('created_at', '>=', '2000-01-01')
  ->update([
    'column'=> DB::raw('column+10'), 
  ]);

更多信息:https://laravel.com/docs/9.x/queries#raw-expressions
其他解决方案,请使用增量方法(https://laravel.com/docs/9.x/queries#increment-and-decrement):

DB::table('my_table')
   ->where('created_at', '>=', '2000-01-01')
   ->increment('column', 10);

相关问题