order by 后 group by连用, mysql好像 >5.4不起作用
通过 explain 查看执行计划,可以看到没有 limit 的时候,少了一个 DERIVED 操作
估计是内部优化了,认为 ORDER BY 在这种语法中可忽略,
有 LIMIT 限制涉及排序后的结果,不会忽略 ORDER BY,可以达到预期
tp3.2写法
$re=M('confirm')->field('code,id,types,status,trimtime')->where($where)->order('trimtime desc')->limit(9999)->buildSql(); $res = M()->table($re.' a')->field('count(id) as count,code,id,types,status,trimtime')->group('code')->select(); //原生写法: $dd=M()->query("select * from (SELECT `code`,`id`,`types`,`status`,`displacement`,`trimtime` FROM `s_confirm` WHERE `status` = 0 order by trimtime desc limit 1000) a group by code ");