我需要将一些记录从一个表传递到另一个表,但我还需要删除那些已复制的记录。
使这个复杂的事情是我需要随机获取一堆记录!
这是我过去2小时的尝试:
$temps = DB::table('temps')->inRandomOrder()->take(3)->get();
foreach ($temps as $temp) {
DB::table('videos')->insert(
[
'idd' => $temp->idd,
'title' => '',
]
);
}
foreach($temps as $temp){
DB::table('temps')->where('idd', '=', $temp->idd)->get()->delete();
}
return 'success';
如果我只想插入,没问题。
如果我想删除特定记录或整个表格,没问题。
但是,如果我尝试删除随机插入的记录,则无效。我做错了什么?
答案 0 :(得分:0)
delete()
方法后执行get()
不正确:
foreach($temps as $temp){
DB::table('temps')->where('idd', '=', $temp->idd)->delete();
}
或没有循环的单个查询:
DB::table('temps')->whereIn('idd', $temps->pluck('idd'))->delete();