webman groupBy()使用之后报错

李天宇

$result = Db::table('kms_zan')->groupBy('openid')->get();

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'hmh5.kms_zan.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select * from kms_zan group by openid)

求教这个问题是怎么回事??

1489 3 0
3个回答

李天宇

我自己找到原因了,mysql版本太高了,不兼容导致的。。。

  • 李天宇 2021-12-05

    降低mysql版本并没有什么用,后来发现,真正的原因是webman用的数据库连接是laravel的那套,在配置文件中关闭严格模式,问题解决,方法是 config/database.php文件中 strict => false ok问题到此彻底解决

  • Tinywan 2022-06-15

    MySQL版本是5.6吗?

  • yzh52521 2022-06-15

    用any_value 函数就好了

rororozorn

这错误信息描述的很清晰:
你的select字句查询的字段不在group by子句中,原因是:sql_mode的配置包含了only_full_group_by。
如果你想select * from kms_zan group by openid符合你的预期,则修改sql_mode配置,即:去掉only_full_group_by

  • 暂无评论
yzh52521

any_value 函数了解一下

  • 暂无评论
年代过于久远,无法发表回答
×
🔝