tp5循环查询语句_tp5 foreach 套循环的优化(就是foreach 里边再查表)
优化建议:
1.不要foreach里边再查询表,因为循环多次查表会很占资源的
2.没有办法就关联表查询join
例子:
原写法:
$rsdo=Db::name('order')->field('id,number,pay_number,type')->where('user_id', $user_id)->where('state',0)->where('deleted',0)->select();
if(!empty($rsdo)){
foreach($rsdo as $rsdel){
//查询order_product中有没有相应number的商品,如果没有就删除订单记录
$prs=Db::name('order_product')->field('id')->where('user_id', $user_id)->where('number',$rsdel['number'])->find();
if(!$prs['id']){//不存在就删除
Db::name('order')->where('id',$rsdel['id'])->delete();
}
}
}
优化语句:(没有实测,大概意思)
$rsdo=Db::name('order')->field('id,number,pay_number,type')->where('user_id', $user_id)->where('state',0)->where('deleted',0)->select();
if(!empty($rsdo)){
$number_list = array_column($rsdo, 'number');
$prs = Db::name('order_product')->field('id')->where('user_id', $user_id)->where('number',['in', $number_list])->column('id','number');
$delete_order_ids = [];
foreach($rsdo as $rsdel){
//不存在就删除
if(empty($prs[$rsdel['number']])){
$delete_order_ids[] = $rsdel['id'];
}
}
$delete_order_ids = array_unique($delete_order_ids);
if(!empty($delete_order_ids)){
Db::name('order')->where('id',['in', $delete_order_ids])->delete();
}
}
tp5循环查询语句_tp5 foreach 套循环的优化(就是foreach 里边再查表)相关推荐
- oracle 数据库循环查询语句怎么写,sql循环查询(sql语句循环查询详解)
sql循环查询(sql语句循环查询详解) 2020-07-24 11:15:51 共10个回答 select*fromawheret_idin('3','4');select*fromawheret_ ...
- tp5循环查询语句_如何用Excel快速生成SQL语句,用过的人都说好
Excel的公式自动生成想必大家都知道了,就是写好一个公式后直接往下拖,就可以将后面数据的公式自动生成. 今天我们就用这个功能来快速生成SQL语句. 导入Excel数据 Excel的数据有多种方式,这 ...
- python中循环迭代语句_python条件与循环-循环
1 while语句 while用于实现循环语句,通过判断条件是否为真,来决定是否继续执行. 1.1 一般语法 语法如下: while expression: suite_to_repeat 1.2 计 ...
- mysql怎么查看刷脏页慢_一条SQL查询语句极为缓慢,如何去优化呢
一条 SQL 查询语句执行的很慢,那是每次查询都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?可以分以下两种情况来讨论. 大多数情况是正常的,只是偶尔会出现很慢的情况. 在数据量不变的情况下,这条 ...
- oracle for循环 查询语句,Oracle学习之:for循环中包涵select语句
oracle中的for循环用法比较简单,但是在一次用到包涵select语句的for循环时,还是发现了一些自己以前没有注意的东西. Oracle中的for循环用法比较简单,,但是在一次用到包涵selec ...
- python无限循环条件循环_python 语句,条件,循环
#coding:utf-8 __author__ = 'Administrator' #想要在同一行打印,print后面加',' print 12, print 34 '''从模块导入函数 impor ...
- java用for循环查询数据_使用for循环结果创建数据框
我想创建一个数据框,其中df1值的平均值和df2值的平均值作为新数据框中的列 . 我可以得到要打印的值 for (i in samples) { print(c(with(df1, mean(d18_ ...
- 【C语言】循环语句(do while循环)
简单不先于复杂,而是在复杂之后. 目录 do while循环 do 语句的用法 执行流程 do语句的特点 go to语句 do while循环 do 语句的用法 while循环和for循环都是入口条件 ...
- java循环嵌套语句示范_java的三种循环结构与循环嵌套
循环结构: 语法,及执行顺序 语法: while(boolean类型){ //功能语句 } 执行顺序: 1断小括号中的值是否为true,如果为true,执行功能语句 2行完功能语句,继续判断小括号中的 ...
最新文章
- POJ 3278 Catch That Cow
- 深圳网络推广公司介绍几点新网站优化守则!
- 开发日记-20190527 关键词 ubuntu无线网卡驱动安装
- python、java实现二叉树,细说二叉树添加节点、深度优先(先序、中序、后续)遍历 、广度优先 遍历算法...
- 剑指Offer之栈的压入、弹出序列
- 把一个人的特点写具体作文_部编版五年级下册语文 第五单元:习作 | 把一个人的特点写具体 电子课本+教案课件...
- 计算机人力资源试题及答案,计算机二级word练习题一题目及答案.
- 安装及卸载CrossOver for Mac
- Office默认打开方式的改变方法以及安装程序莫名启动问题的权威汇总
- paip.slap工具与于64位win7与JDBC的性能对比
- a form 出口享惠情况_关于“出口享惠情况”如何填报?
- 数学基础知识总结 —— 6. 基本矩阵运算公式
- php迅雷地址解析,迅雷地址在线解密–PHP源码
- 一款红队大量资产指纹探测工具
- 显示文件内容时显示行号命令nl
- # D - Staircase Sequences
- 亚马逊将为语音助手研发AI芯片 欲追赶苹果
- 偏微分方程:计算基本理论
- 人工智能学习(八斗学院)
- 1407C. Chocolate Bunny(交互,推导)
热门文章
- python 统计组合用什么库_Python数据科学,用这些库就够了
- Codeforces Round #208 (Div. 2)D. Dima and Hares
- nginx+keepalived互为主主高可用配置
- 第一篇博客文章,hello world及编码
- Vulhub搭建小记
- Kinect实现简单的三维重建
- ubuntu 输入时弹出剪切板候选项
- 星晨急便凶多吉少:马云陈显宝无意援手或破产
- JavaScript学习笔记(七)——厚积薄发之小成果
- SQL Server 2005查询处理结构-用户模式计划(UMS)