解决Thinkphp6 中使用 MySQL5.7 group by问题this is incompatible with sql_mode=only_full_group_by

2021-06-24   阅读:2022   分类:后端    标签: TP6

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

image.png

在使用tp6框架的时候,数据库环境是mysql5.7,发现上面那个错误,也就是高版本MySQL报错问题。

解决方法有两种:

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

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

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

<?php
$res = Db::name('product')
            ->where(array('goods_id'=>$goods_id))
            ->field('any_value(id) as id,any_value(goods_id) as goods_id, any_value(goods_number) as goods_number, any_value(goods_attr) as goods_attr')
            ->group('goods_id')
            ->select();
?>


【腾讯云】云服务器等爆品抢先购,服务器108元每年

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

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

文章评论(0)

登录
简忆博客壁纸 头像

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

置顶推荐

打赏本站

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