我必须制作使用数据库100k +记录的laravel应用程序。我有带有列的表:numer
,date
,segment
,user_id
。
我正在选择需要的记录:
$datetime = new \DateTime();
$datetime->modify('+6 months');
$seg = "biz";
$select = DB::table('clients')
->where('user_id', $id)
->where('date','<',$datetime)
->where('segment',$seg)
->get();
我得到了一些记录,现在,是否为select中的100条记录设置了user_id
?
主要规则是我无法对数据库中的日期进行排序。
答案 0 :(得分:1)
您可以在选择给定数量的行进行更新后批量更新:
$datetime = new \DateTime();
$datetime->modify('+6 months');
$seg = "biz";
$new_id = 743; // <-------- example of value to be updated
$updated_rows = DB::table('clients')
->where('user_id', $id)
->where('date','<', $datetime)
->where('segment', $seg)
->take(100) // <---- # records to be updated
->update(['user_id' => $new_id]); // <---- new value(s) to update
检查与此主题相关的the documentation(面向Eloquent,但也适用于Laravel Query Builder)。
PS:$updated_rows
是已更新的行数。