我想要做的是将 TableB 的 book_id 字段中的所有记录更新为等于TableA book_id。但它只更新了几条记录,准确地说是 7862 条记录中的 19条。
我这样做了很多次,希望随后的 19 条记录更新最终会达到 7862 条,但令我困惑的是,它仍然是 19 条。
TableA:
book_id
ibooks_id -> equal to TableB.book_id
TableB:
book_id -> change to TableA.book_id
我试过的代码:
$books = TableAModel::join("TableB", "TableA.ibooks_id", '=', "TableB.book_id")
->update(array("TableB.book_id" => "TableA.book_id"));
并且:
$tableBItems = TableBModel::all();
TableBModel::unguard();
foreach($tableBItems as $tableBitem) {
$TableAItem = TableAModel::where('ibooks_id',$tableBitem->book_id)->first();
if(isset($TableAItem->book_id)) {
$tableBitem->book_id = $TableAItem->book_id;
$tableBitem->save();
}
}
您对此有更好的方法吗?或者这可以通过纯 mysql 查询来完成,谢谢。
楷模:
class TableBModel extends Eloquent {
public $table = 'TableB';
public $timestamps = false;
}
class TableAModel extends Eloquent {
protected $table = 'TableA';
public $primaryKey = 'book_id';
}