SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column #39;tp6shop.tp_product.id#39; which is not functional
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
在使用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();
?>
本文标题为:解决Thinkphp6 中使用 MySQL5.7 group by问题this is incompatible with sql_mode=only_full_group_by


基础教程推荐
- php中使用array_filter()函数过滤数组实例讲解 2023-05-19
- laravel model模型定义实现开启自动管理时间created_at,updated_at 2023-03-02
- TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例 2023-01-19
- thinkPHP3.2.2框架行为扩展及demo示例 2022-11-07
- PHP使用SMTP邮件服务器发送邮件示例 2022-11-16
- PHP数据加密方式梳理介绍 2023-07-03
- TP5 连接多个数据库及使用方法 2023-08-30
- PHP实现创建一个RPC服务操作示例 2023-04-01
- PHP实现生成数据字典功能示例 2022-10-18
- PHP删除数组中指定值的元素常用方法实例分析【4种方法】 2022-11-12