帮我优化一下循环查询数据库

https://img3.mukewang.com/5c8f64240001e58508000301.jpg

繁星coding
浏览 622回答 2
2回答

HUX布斯

$data=Db::name($this->name)->field('id',sender)->where($where)->select(); if(empty($data)) return []; $data_sender_ids=array_unique(array_column($data,'sender')); $model_member=new Member(); $data_members=$model_member->field(...) ->whereIn('id',$data_sender_ids) ->where(delstatus,'<>',2) ->get(); if(empty($data_members)) return []; $sender_ids=array_column($data_members,'id'); foreach($data as $key=>$value){ if(!in_array($value['sender'],$sender_ids)){ unset($data[$key]); } } return $data; 两条sql搞定 //我不清楚你的php框架,这段代码你变通一下 $data_members=$model_member->field(...) ->whereIn('id',$data_sender_ids) ->where(delstatus,'<>',2) ->get();

猛跑小猪

非常简单,根据你的程序逻辑 你 select 出结果后,循环取出ID组成多个IDs然后 where 子句 使用 IN IDs 取出数据 就能解决你的疑问了,不要对Mysql循环。
打开App,查看更多内容
随时随地看视频慕课网APP