我有一张如下表格。
表A
id | id_n | val_a
1 | 1 | a1
2 | 2 | a2
3 | 2 | a3
4 | 2 | a4
我希望使用laravel 5.2更新id_n = 2
与val_a = {b1,b2,b3,b4,b5}
的所有值
如下所示。
id | id_n | val_a
1 | 1 | a1
2 | 2 | b1
3 | 2 | b2
4 | 2 | b3
5 | 2 | b4
6 | 2 | b5
我怎样才能在laravel 5.2中这样做?谢谢你。
答案 0 :(得分:0)
如果您要删除旧记录并想要更新新
删除这样的旧记录,
DB::table('table_name')->where('id_n', 2)->delete();
存储新记录
$postData = [
["id_n" => 2,"val_a"=> "b1"],
["id_n" => 2,"val_a"=> "b1"],
........
];
DB::table('table_name')->insert($postData);
答案 1 :(得分:0)
由于您不知道需要更新多少行,我会以与Niklesh不同的方式进行更新。
首先我还会删除所有行,但我会检查已删除的行数
DISTINCT
之后我会遍历所有行并单独插入每一行。
$num_deleted = your_model::where('id_n', 2)->delete();
如果您在for ($x = 1; $x <= $num_deleted; $x++) {
your_model::create(["id_n" => 2,"val_a"=> "b".$x]);
}
或id_n = 2
行的位置只有1行,那么这样做有效。