laravel 中是否有有效的方法从数据库中选择记录并设置它们 user_id?

我必须制作使用数据库 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 条记录?


主要规则是我不能在数据库中对日期进行排序。


HUH函数
浏览 123回答 1
1回答

摇曳的蔷薇

您可以在选择要更新的给定行数后批量更新行:$datetime = new \DateTime();$datetime->modify('+6 months');$seg = "biz";$new_id = 743; // <-------- example of value to be updated$updated_rows = DB::table('clients')&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ->where('user_id', $id)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ->where('date','<', $datetime)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ->where('segment', $seg)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ->take(100)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// <---- # records to be updated&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ->update(['user_id' => $new_id]); // <---- new value(s) to update查看与此主题相关的文档(它面向 Eloquent,但也适用于 Laravel Query Builder)。PS:$updated_rows是已经更新的行数。
打开App,查看更多内容
随时随地看视频慕课网APP