您现在的位置是:首页 > 经验记录>Thinkphp>thinkphp5+mysql5.7.20 group方法异常解决方法 网站首页 Thinkphp
thinkphp5+mysql5.7.20 group方法异常解决方法
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
本人开发环境用的是Mysql5.7
出现这个错误的原因是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()函数。
(推荐用下面的方法[group里的字段可以不用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);
————————————————
版权声明:本文为CSDN博主「老师傅的心跳」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34050360/java/article/details/105692582
随机推荐
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- PHP redis扩展,可解决thinkphp报错不支持reids问题
- PHP获取项目所有控制器方法名称
- ubuntu 下搭建redis和php的redis的拓展
- Laravel路由笔记,参数包含斜杠"/"如何处理?非必须参数如何定义?
- laravel-permission使用记录[手册]
- Laravel框架下,页面(包含大量echarts图表)html导出为PDF实现,可批量.
- CentOS8 yum 报错 404 for http://mirrors.cloud.aliyuncs.com/centos/8/AppStream
- ubuntu apache2 ssl配置
- 自己的服务器(本地物理或者云服务器),可以搭建哪些方便自己使用、有意思的服务呢?