Thinkphp+mysql5.7之group报错

在本地的完美程序,跑到服务器上去,居然报错了。
查找了好一会才知道是mysql5.7版本的group by 错误。
也难怪了,本地mysql是5.6的。
mysql 5.7 模式中。默认启用了ONLY_FULL_GROUP_BY。
解决方法有以下几种:

1、修改配置文件,删掉only_full_group_by
2、使用any_value()函数
因为我不想修改配置文件,再加上需要修改的地方特别少,我就用了any_value()函数
在不需要group by 的字段加上any_value()

$all_culture = Db::table('culture')->field('any_value(id) as id,any_value(title) as title,slug,any_value(display_order) as display_order,any_value(is_live) as is_live,any_value(created_at) as created_at,any_value(updated_at) as updated_at')->group('slug')->select();

你可能感兴趣的:(Thinkphp+mysql5.7之group报错)