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同时使用