问题

mysql使用count()执行select报错:ERROR 1140 (42000) In aggregated query without GROUP BY

原因

mysql的sql_mode默认开启了only_full_group_by模式

解决方法

  • 命令解决(临时生效)
    查看sql_mode
    show variables like '%sql_mode';  
    show session variables like '%sql_mode%';  
    show global variables like '%sql_mode%';  

    修改sql_mode

    set global sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';
    set session sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';
  • 配置文件解决(永久修改)
    vim /etc/my.cnf修改最后面一行
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES