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 ");