mysql 不允许分组的问题 this is incompatible with sql_mode=only_full_group_by
异常信息:this is incompatible with sql_mode=only_full_group_by
解决办法: 找到 my.cnf
find / -name my.cnf
然后在后面加上 :
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
vi /etc/my.cnf
备注:如果是这查询数据量小可以这么用,但事实如果数据量很大,这种操作是禁止的,出现这个问题 是因为 你 的分组没有用上索引。 使用了文件排序和 临时表。所以mysql 默认关闭这个功能。 如果数据量巨大,做好的做法是优化你的索引和查询。
出了文件排序和 临时表效率在数据量大的时候很低。
因为我是用上的 三个字段建立索引,所以 加上 city 以后就完全不同了。知道区Id 你肯定知道 城市Id了。
或者说我吧索引优化一下: 改成通过 区域Id 和 省Id 建立 索引:( 这个 不太合理,只是举例子,只是说明可以这么用 )
能耍的时候就一定要耍,不能耍的时候一定要学。
--天道酬勤,贵在坚持posted on 2019-01-16 16:00 zhangyukun 阅读(460) 评论(0) 编辑 收藏 举报