php中避免迴圈查詢資料庫的方式
阿新 • • 發佈:2018-12-09
在迴圈中查詢資料不但效率低下而且對資料庫造成很大對壓力。在平常的開發中應該儘量避免這種情況,以下是我以laravel框架的一個例子:
需求:有兩個資料表,一個小組型別表,一個小組表。需查出小組型別下的小組。
當然這裡你可以使用關聯查詢。我只是拿這個舉個例子,程式碼如下:
//查出小組的型別 $groupType = GroupType::select('id','title as name')->get()->toArray(); //取小組型別id的集合陣列 $groupTypeIds = array_map(function ($item){ return $item['id']; },$groupType); //以小組型別分組查出小組型別和小組 $group = Group::select('id','name','typeId') ->whereIn('typeId',$groupTypeIds) ->get() ->groupBy('typeId') ->toArray(); //處理一下 foreach ($groupType as $k1 => $v1) { $groupType[$k1]['children'] = array_key_exists($v1['id'], $group) ? $group[$v1['id']] : []; }