thinkphp5.0 php7.2 nginx1.20 mysql5.7
$twhere1 = [['pipeitime','between',['1648656000','1648742359']],['shanghu_name','in','baidu123'],['status','=',6]];
$twhere2 = [['pipeitime','between',['1648656000','1648742359']],['shanghu_name','in','baidu123'],['status','=',6]];
/****************************/
$twhere1[] = ['class','=',1];
$twhere2[] = ['class','=',2];
$roborder = new \app\admin\model\Roborder();
echo '<hr>';
$today1 = $roborder->receivePayment($twhere1);
echo 'sql1:',$roborder->getLastSQL();
$today1 = array_column($today1,null,'shanghu_name');
echo '<hr>';
$today2 = $roborder->receivePayment($twhere2);
echo 'sql2:',$roborder->getLastSQL();
echo '<br>';
sql1:SELECT sum(price) tot,shanghu_name FROM ysk_roborder
WHERE pipeitime
BETWEEN 1648656000 AND 1648742359 AND shanghu_name
= 'baidu123' AND status
= 6 AND class
= 1 GROUP BY shanghu_name
sql2:SELECT sum(price) tot,shanghu_name,sum(price) tot,shanghu_name FROM ysk_roborder
WHERE pipeitime
BETWEEN 1648656000 AND 1648742359 AND shanghu_name
= 'baidu123' AND status
= 6 AND class
= 1 AND pipeitime
BETWEEN 1648656000 AND 1648742359 AND shanghu_name
= 'baidu123' AND status
= 6 AND class
= 2 GROUP BY shanghu_name
两次 new 就不会出现
只new 一次,就可以不用上一次执行的where
静态调用 不new 不行吗.
twhere1 twhere2 两个条件重复利用了。
你可以使用拼接,在twhere2中删除twhere1相同的条件,在twhere2中拼接twhere1