为了账号安全,请及时绑定邮箱和手机立即绑定

查询所有分类 group by 报错 this is incompatible with sql _mode=only_full_group_by

 语句:mysql>  SELECT p.type_id,p.type_name,count(s.type_name) AS children_coun F

ROM tdb_goods_types AS p LEFT JOIN tdb_goods_types AS s ON s.parent_id = p

.type_id GROUP BY p.type_name ORDER BY p.type_id;

错误:ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause

 and contains nonaggregated column 'test.p.type_id' which is not functiona

lly dependent on columns in GROUP BY clause; this is incompatible with sql

_mode=only_full_group_by


正在回答

2 回答

ORDER BY中的列,应该再GROUP BY子句中出现,应该这样写:GROUP BY p.type_name,p.type_id ORDER BY p.type_id;

0 回复 有任何疑惑可以回复我~
#1

油金哇卡呀酷咧 提问者

非常感谢!
2016-09-05 回复 有任何疑惑可以回复我~

我查到  这个错误出现,group by  后的字段要与 select 后的字段相同,

如果想要只写一个字段 就要加 set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

可以查看mysql5.1参考手册 5.3.2 SQL服务器模式 一节

出处http://www.imooc.com/qadetail/162552

2 回复 有任何疑惑可以回复我~
#1

scool_wang

问题解决了!
2016-10-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

查询所有分类 group by 报错 this is incompatible with sql _mode=only_full_group_by

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信