异常信息:this is incompatible with sql_mode=only_full_group_by

 

mysql  不允许分组的问题 this is incompatible with sql_mode=only_full_group_by_mysql

 

 

 解决办法: 找到  my.cnf 

   find / -name my.cnf

mysql  不允许分组的问题 this is incompatible with sql_mode=only_full_group_by_mysql_02

 

 然后在后面加上 : 

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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

mysql  不允许分组的问题 this is incompatible with sql_mode=only_full_group_by_索引优化_03

 

 

 

 

 

备注:如果是这查询数据量小可以这么用,但事实如果数据量很大,这种操作是禁止的,出现这个问题 是因为 你 的分组没有用上索引。 使用了文件排序和 临时表。所以mysql 默认关闭这个功能。 如果数据量巨大,做好的做法是优化你的索引和查询。

 

出了文件排序和 临时表效率在数据量大的时候很低。

mysql  不允许分组的问题 this is incompatible with sql_mode=only_full_group_by_索引优化_04

 

 

 因为我是用上的 三个字段建立索引,所以 加上 city 以后就完全不同了。知道区Id 你肯定知道 城市Id了。

mysql  不允许分组的问题 this is incompatible with sql_mode=only_full_group_by_索引优化_05

 

 

 

或者说我吧索引优化一下: 改成通过  区域Id 和  省Id 建立 索引:(  这个 不太合理,只是举例子,只是说明可以这么用  )

 

mysql  不允许分组的问题 this is incompatible with sql_mode=only_full_group_by_sql_06

 

mysql  不允许分组的问题 this is incompatible with sql_mode=only_full_group_by_索引优化_07