这是因为mysql5.7及以上版本的mysql中,对于 group by 的这种聚合操作,如果在select 中的列,
没有在group by 中出现,那么这个SQL是不合法的,因为列不在group by的从句中,所以对于设置了这个mode的数据库,在使用group by 的时候,就要用MAX(),SUM(),ANT_VALUE()的这种聚合函数,才能完成GROUP BY 的聚合操作。

查询以后发现是因为only_full_group_by设置的原因,下边我们将其进行关闭:

1. 第一种的解决办法是直接在mysql中进行设置,如下:

mysql> select @@global.sql_mode;
+-----------------------------------------------------------------------------------------------------------------------+
| @@global.sql_mode                                                                                                     |
+-----------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
+-----------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SET @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’;将@@global.sql_mode重新设置后,再进行查询:mysql> SELECT @@GLOBAL.sql_mode;
+----------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode                                                                                  |
+----------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

注:mysql8没有NO_AUTO_CREATE_USER这个模式;这种方式有个缺陷数据库每次重启都会恢复到之前的模式

4.第二种方式:修改配置文件

创建my.cnf文件,vim /etc/my.cnf,将下边的内容拷贝到my.cnf中。

# Example MySQL config file for medium systems.  #  # This is for a system with little memory (32M - 64M) where MySQL plays  # an important part, or systems up to 128M where MySQL is used together with  # other programs (such as a web server)  #  # MySQL programs look for option files in a set of  # locations which depend on the deployment platform.  # You can copy this option file to one of those  # locations. For information about these locations, see:  # http://dev.mysql.com/doc/mysql/en/option-files.html  #  # In this file, you can use all long options that a program supports.  # If you want to know which options a program supports, run the program  # with the "--help" option.  # The following options will be passed to all MySQL clients  [client]default-character-set=utf8#password   = your_password  port        = 3306  socket      = /tmp/mysql.sock   # Here follows entries for some specific programs  # The MySQL server  [mysqld]sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'character-set-server=utf8init_connect='SET NAMES utf8port        = 3306  socket      = /tmp/mysql.sock  skip-external-locking  key_buffer_size = 16M  max_allowed_packet = 1M  table_open_cache = 64  sort_buffer_size = 512K  net_buffer_length = 8K  read_buffer_size = 256K  read_rnd_buffer_size = 512K  myisam_sort_buffer_size = 8M  character-set-server=utf8  init_connect='SET NAMES utf8'
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking  # Replication Master Server (default)  # binary logging is required for replication  log-bin=mysql-bin  # binary logging format - mixed recommended  binlog_format=mixed  # required unique id between 1 and 2^32 - 1  # defaults to 1 if master-host is not set  # but will not function as a master if omitted  server-id   = 1  # Replication Slave (comment out master section to use this)  #  # To configure this host as a replication slave, you can choose between  # two methods :  #  # 1) Use the CHANGE MASTER TO command (fully described in our manual) -  #    the syntax is:  #  #    CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,  #    MASTER_USER=<user>, MASTER_PASSWORD=<password> ;  #  #    where you replace <host>, <user>, <password> by quoted strings and  #    <port> by the master's port number (3306 by default).  #  #    Example:  #  #    CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,  #    MASTER_USER='joe', MASTER_PASSWORD='secret';  #  # OR  #  # 2) Set the variables below. However, in case you choose this method, then  #    start replication for the first time (even unsuccessfully, for example  #    if you mistyped the password in master-password and the slave fails to  #    connect), the slave will create a master.info file, and any later  #    change in this file to the variables' values below will be ignored and  #    overridden by the content of the master.info file, unless you shutdown  #    the slave server, delete master.info and restart the slaver server.  #    For that reason, you may want to leave the lines below untouched  #    (commented) and instead use CHANGE MASTER TO (see above)  #  # required unique id between 2 and 2^32 - 1  # (and different from the master)  # defaults to 2 if master-host is set  # but will not function as a slave if omitted  #server-id       = 2  #  # The replication master for this slave - required  #master-host     =   <hostname>  #  # The username the slave will use for authentication when connecting  # to the master - required  #master-user     =   <username>  #  # The password the slave will authenticate with when connecting to  # the master - required  #master-password =   <password>  #  # The port the master is listening on.  # optional - defaults to 3306  #master-port     =  <port>  #  # binary logging - not required for slaves, but recommended  #log-bin=mysql-bin  # Uncomment the following if you are using InnoDB tables  #innodb_data_home_dir = /usr/local/mysql/data  #innodb_data_file_path = ibdata1:10M:autoextend  #innodb_log_group_home_dir = /usr/local/mysql/data  # You can set .._buffer_pool_size up to 50 - 80 %  # of RAM but beware of setting memory usage too high  #innodb_buffer_pool_size = 16M  #innodb_additional_mem_pool_size = 2M  # Set .._log_file_size to 25 % of buffer pool size  #innodb_log_file_size = 5M  #innodb_log_buffer_size = 8M  #innodb_flush_log_at_trx_commit = 1  #innodb_lock_wait_timeout = 50  [mysqldump]  quick  max_allowed_packet = 16M  [mysql]  no-auto-rehash  # Remove the next comment character if you are not familiar with SQL  #safe-updates  default-character-set=utf8   [myisamchk]  key_buffer_size = 20M  sort_buffer_size = 20M  read_buffer = 2M  write_buffer = 2M  [mysqlhotcopy]  interactive-timeout
————————————————

此配置已经做好了设置,直接使用即可,就是直接多加下边这一行配置:

2.2 重启mysql服务,再次查看:

3.成功~~

遇见 mysql Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre 问题相关推荐

  1. MySQL Expression 2 of SELECT list is not in GROUP BY clause and contains nonaggregated column yous

    MySQL:Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'yous ...

  2. MySQL查询的时候出现 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre报错

    Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre -后面一大堆 出错就是这样 我们可以在网上看到 ...

  3. mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题

    报错如下: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'sss. ...

  4. mySql中Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题

    报错信息 Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'a.id' ...

  5. MySQL报错“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法

    解决MySQL5.7版本之后使用GROUP BY语句时报错 问题原因 解决方法 今天使用mysql简单的一句分组查询语句(GROUP BY)报错了. mysql> SELECT * FROM t ...

  6. mysql报错:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre

    原因: https://blog.csdn.net/fansili/article/details/78664267 解决办法: 1:查看mysql配置文件位置 [root@localhost ~]# ...

  7. 【阿里云 Linux 服务器】mysql 遇到以下问题Expression #1 of SELECT list is not in GROUP BY clause and contains nonag

    报错信息如下: Caused by: java.sql.SQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY ...

  8. mysql 报错解决思考Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column

    mysql报错: [Err] 1055 - Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggrega ...

  9. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column

    场景 安装了mysql5.7,用group by 查询时抛出如下异常: Expression #1 of SELECT list is not in GROUP BY clause and conta ...

最新文章

  1. HD-ACM算法专攻系列(3)——Least Common Multiple
  2. [搬运] iOS 7 侧滑返回手势使用和错误集
  3. 别吵吵,分布式锁也是锁
  4. 2017.9.5 组合数学 思考记录
  5. MySQL学生人数统计小案例
  6. PyTorch-Transformers:一款可处理最先进NLP的惊人模型库
  7. Educoder 机器学习 SMO进行优化 第1关:SMO高效优化算法
  8. 企业如何做好EDM-企业做EDM的方案设计
  9. paraview参考手册6:远程并行可视化
  10. uni-app项目的启动
  11. 用户价值分层——基于RFM模型的研究分析
  12. 文本框、密码框、文本域
  13. 深度 | 英伟达Titan Xp出现后,如何为深度学习挑选合适的GPU?这里有份性价比指南
  14. Excel自定义格式参数
  15. SQL审核 | 如何利用 OpenAPI 实现自己的扫描任务
  16. 一文搞定Nginx的安装与高可用配置
  17. 电脑显示erc服务器不用,实操讲解:如何装饰你的ERC721非同质化资产?
  18. POJ_2228 Naptime ( 环状dp )
  19. vue-router的两种模式及区别
  20. 电脑桌面上做工作计划的便签软件是啥?

热门文章

  1. Data Guard ORA-16825、ORA-16661解决一例
  2. Java学习 day 34_HTML
  3. 工业物联网 SCA-IOT2050快速收集三菱CNC数控系统数据至OPC UA服务器
  4. 基于Cesium的通视分析的实现
  5. 识别无效对象和不可用对象
  6. 360桌面与QQWEB桌面体验对比
  7. 点聚weboffice插件自定义菜单
  8. modelsim打开.v文件,modelsim无法打开.v文件
  9. 事件模拟场景:猫叫-老鼠逃跑 主人惊醒
  10. Visual C++网络编程经典案例详解 第9章 实用播放器 多线程通信 线程间通信 根据播放列表音乐序号判断mp3播放顺序