win下mysql分组查询报错记录

Author Avatar
yyq 2020-06-16 12:04:23
  • 二维码

win下mysql分组查询报错记录

        在数据库采用子查询然后分组方式时遇到的报错问题,记录下问题及解决方式


        NO1:采用的TP链式查询方式关联了几个表

        $join = [

            ['btab b', 'a.bid=b.id'],

            ['ctab c', 'b.cid=c.id'],

            ['dtab d', 'c.did=d.id']

        ]

        $subQuery = Db::name('atab')->alias('a')->join($join)->where($map)->order($sort)->buildSql();

        $dataInfo = Db::table($subQuery.' a')->group('bid')->select();

        ......


        在本地执行时正常运行,放线上后执行报错如下:

        [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'a.did' which is not functionally dependent on     columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by


        NO2:该问题出现的主要原因是由于数据库版本问题导致,主要问题在sql_mode=only_full_group_by


        NO3:一劳永逸的办法即修改数据库配置文件my.ini,查看是否存在sql_mode项,没有则添加如下语句:

            sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

上一篇 返回列表 下一篇

发表评论

Tips:评论内容请文明用语