1. 程式人生 > >order by group by連用

order by group by連用

count lai esc group col 執行 一個 select() mtime

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

order by group by連用