首页 > 解决方案 > 使用同一表中另一列的值更新表列

问题描述

我需要复制一列,但我也不想删除旧的。将值从一列复制到另一列的正确方法是什么?我已经尝试过这样的事情,但它不起作用:

Users::update([
    'from_status' => 'status'
]);

我不得不提一下,使用MySQL Workbench我已经在表中添加了新列(它是 column from_status)。也可以通过这种方式一次更新多个列吗?Columnstatus不是我要复制的唯一一个。

标签: laraveleloquent

解决方案


有几种方法可以完成此任务。最简单和最直接的方法之一如下:

$users = User::all();
foreach($users as $user){
   $user->from_status = $user->status;
   $user->save();
}

也可以通过这种方式一次更新多个列吗?

是的。以同样的方式为每一列添加一行:

$users = User::all();
foreach($users as $user){
   $user->from_status = $user->status;
   $user->column2 = $user->some_column;
   $user->save();
}

推荐阅读