les*_*gar 11 php laravel eloquent laravel-5
我想执行UPDATE
使用滔滔不绝,将设置column_c
的使用值值column_a
和column_b
同桌.基本上,这样的事情:
User::where('id', '>', 0)
->update(['column_c' => $this->column_a + $this->column_b]);
Run Code Online (Sandbox Code Playgroud)
where $this->column_a
和$this->column_b
将是当前行的实际值.
MySQL等价物:
UPDATE `user` WHERE id > 0 SET column_c = column_a + column_b;
Run Code Online (Sandbox Code Playgroud)
注意:上面的代码只是展示这个想法的一个例子.这不是实际的实现(这将创建数据库冗余).
如何在Laravel 5.1中执行此类更新?我真的想避免一个foreach
.
Pᴇʜ*_*Pᴇʜ 17
也许DB::raw
可以帮忙.这将允许您使用任何标准的SQL查询来组合您的数据:
User::where('id', '>', 1)
->update(['column_c' => DB::raw( CONCAT(column_a, '-', column_b) )]);
Run Code Online (Sandbox Code Playgroud)
小智 5
例子:
User::where('id', '>', 0)
->update(['column_c' => DB::raw('`column_a` + `column_b`') ]);
Run Code Online (Sandbox Code Playgroud)