thinkphp5+mysql5.7.20 group方法异常解决方法

2019-11-25   阅读:3352   类型:后端   分类:TP5    标签: TP5

thinkphp5+mysql5.7.20 group方法异常解决方法

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'movie.tp_video_tags.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by


微信截图_20191125165932.png


本人开发环境用的是Mysql5.7

image.png


出现这个错误的原因是MySQL5.7版本开启了sql_mode中的“only_full_group_by”,而这个在执行以往版本中带有group by的语句时就会报错。

两种解决方法:

1、修改my.cnf(windows下是my.ini)配置文件,删掉only_full_group_by这一项


2、在不修改MySQL配置文件的情况下,需要修改sql语句来执行。

group by后面的列名,还是和以前一样通过select直接获取,而对于select中获取非group by的信息,则要通过any_value()函数。

$tags_list = db('video_tags')
        ->field('any_value(id) as id,any_value(tags_name) as tags_name, any_value(sort) as sort, any_value(stop) as stop')
        ->group('cate_id')
        ->order('sort', 'asc')
        ->select();
        halt($tags_list);


【腾讯云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://www.tpxhm.com/adetail/259.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×