order by group by

order by 后 group by连用, mysql好像 >5.4不起做用mysql

经过 explain 查看执行计划,能够看到没有 limit 的时候,少了一个 DERIVED 操做
估计是内部优化了,认为 ORDER BY 在这种语法中可忽略,
有 LIMIT 限制涉及排序后的结果,不会忽略 ORDER BY,能够达到预期sql

 

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 ");
相关文章
相关标签/搜索