我必须制作使用数据库 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();我得到了一些记录,现在有没有user_id从 select 中设置100 条记录?主要规则是我不能在数据库中对日期进行排序。
1 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
您可以在选择要更新的给定行数后批量更新行:
$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
查看与此主题相关的文档(它面向 Eloquent,但也适用于 Laravel Query Builder)。
PS:$updated_rows是已经更新的行数。
- 1 回答
- 0 关注
- 122 浏览
添加回答
举报
0/150
提交
取消