企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
之前有个页面响应有点慢。看过代码之后,有一段是循环查询,一看到这种循环本能的我就想把它合并成一条sql 如 ``` $categories = array(1,3,5,75,120,135); // 这里只是举例,实际这个数组会更大 $items = array(); foreach($categories as $cid){ $items[] = $db->query('select `id`,`title`,`img_url`,`create_time`') } ``` [TOC] ### not in 优化 使用left join的保持左表记录的特性,not in 的字段 field 肯定在AB两表都有 那么A left join B on A.field = B.field and 两表的筛选条件【这里记住B表的筛选条件千万不要放到where,A表的可以,否则会筛选掉,无法利用保留左表记录的特性】 最后保留主表A的全记录 最后用过滤条件 where B.field is null 就可以查出not in 同理 where B.field is not null 可以查出 in 【in当然用inner join更好】