php 使用其他列值进行Eloquent更新

jjhzyzn0  于 2023-05-12  发布在  PHP
关注(0)|答案(2)|浏览(65)

我想使用Eloquent执行UPDATE,这将使用同一表的column_acolumn_b的值设置column_c值。基本上,类似这样的东西:

User::where('id', '>', 0)
        ->update(['column_c' => $this->column_a + $this->column_b]);

其中$this->column_a$this->column_b * 将是 * 当前行的实际值。

MySQL等价:

UPDATE `user` WHERE id > 0 SET column_c = column_a + column_b;

注意:以上代码只是一个示例。这 * 不是 * 实际的实现(这将创建一个DB冗余)。

如何在Laravel 5.1中执行此类更新?我真的很想避免一个foreach

ukxgm1gy

ukxgm1gy1#

也许DB::raw可以帮助。这将允许您使用任何标准的SQL查询来合并您的数据:

User::where('id', '>', 1)
    ->update(['column_c' => DB::raw( CONCAT(column_a, '-', column_b) )]);
frebpwbc

frebpwbc2#

示例:

User::where('id', '>', 0)
    ->update(['column_c' => DB::raw('`column_a` + `column_b`') ]);

相关问题