所有运行正确,为什么添加了GROU BY p.type_id之后就报错呢???
select p.type_id,p.type_name,s.type_name from tdb_goods_types p left join tdb_goods_types s on s.parent_id = p.goods_id;这段成功运行,但是如果在后面加上
group by p.type_id或者group by p.type_name就报错。。。。。错误如图
select p.type_id,p.type_name,s.type_name from tdb_goods_types p left join tdb_goods_types s on s.parent_id = p.goods_id;这段成功运行,但是如果在后面加上
group by p.type_id或者group by p.type_name就报错。。。。。错误如图
2017-08-11
查询资料得知 Mysql5.7版本以后对插入等操作要求更加严谨;
解决方案:
方法一、 操作层要求SQL相关格式更规范,严谨;(恕我菜鸟般的技术不能解决, 只能修改配置文件)
方法二、修改配置文件my.ini (linux下为 my.cnf)
-----首先在mysql控制台执行语句 SELECT @@GLOBAL.sql_mode;
我这里可查到 sql_mode 如下
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
可发现第一个 就是 ONLY_FULL_GROUP_BY , 复制这些字符串
--------接着打开mysql 的 my.ini 在 [mysqld] 下添加如下信息
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
就是将 ONLY_FULL_GROUP_BY 去掉
-------保存,退出, 重启服务, 再次尝试就可, 如图
举报