mysql ORDER BY和 GROUP BY

Posted 拾柒丷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql ORDER BY和 GROUP BY相关的知识,希望对你有一定的参考价值。

今天把网站的mysq版本更新到最新版本了为5.7  在查询语句的时候出现了一个错误语句  :  

 ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘g2yx_yy.u.login_time‘ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by  

 

这个语句的错误是 order by 的语句中 没有依赖于group by语句中    下面是我之前写的错误语句 

$myGameData = Db::name(‘user_played‘)
->alias(‘u‘)
->join(‘game g‘,‘g.id = u.game_id‘)
->join(‘area a‘,‘a.id = u.area_id AND a.game_id = u.game_id‘)
->field($condition[‘field‘])
->where($condition[‘where‘])
->group(‘u.area_id‘)
->order(‘u.login_time DESC‘)
->select();

上面也说到了为啥报错 后面把sql语句变为
$myGameData = Db::name(‘user_played‘)
->alias(‘u‘)
->join(‘game g‘,‘g.id = u.game_id‘)
->join(‘area a‘,‘a.id = u.area_id AND a.game_id = u.game_id‘)
->field($condition[‘field‘])
->where($condition[‘where‘])
->group(‘u.area_id,u.login_time‘)
->order(‘u.login_time DESC‘)
->select();

就能把问题解决了



    
























以上是关于mysql ORDER BY和 GROUP BY的主要内容,如果未能解决你的问题,请参考以下文章

MySql Group By 和 order by date

mysql:group by,order by

mysql 用 group by 和 order by同时使用

Mysql之order by|group by 排序优化

MySQL 查询优化与 group by 和 order by rand

在 mysql 中使用 group by 查询和 order by 查询选择