我必须制作使用数据库 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
?
主要规则是我无法对数据库中的日期进行排序。
最佳答案
在选择要更新的给定数量的行后,您可以批量更新行:
$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
是已更新的行数。
关于php - laravel中有没有有效的方法从数据库中选择记录并设置它们user_id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56010632/