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 ");
相關文章
相關標籤/搜索