zoukankan      html  css  js  c++  java
  • MYSQL---Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column '

    --数据库中插入数据或执行sql语句时一直报下面这个错误:
    Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' 
    which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

    原因:这是数据库的sql_mode设置的有问题。Mysql可以支持不同的SQL模式,不同的SQL模式会有不同的语法,执行不同的数据校验简查。

    首先,可以先查看一下数据库现在的sql_mode的值,sql语句为:

    select version(), @@sql_mode;

    获取结果可能如下,不同的设置查询出来的有区别:

    然后可以使用如下语句,去设置自己需要的sql_mode.

    SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

    二、尝试第二种方案

    1、查看sql_mode

    select @@sql_mode
    查询出来的值为:

    ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

    2、去掉ONLY_FULL_GROUP_BY,重新设置值。

    set @@sql_mode =‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION‘;
    3、上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行:

    set sql_mode =‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION‘;
    或者:
    在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'
    在sql_mode 中去掉only_full_group_by

    传送门:https://blog.csdn.net/u012259256/article/details/56482218

  • 相关阅读:
    机器学习中的度量——其他度量
    机器学习中的度量——相似度
    机器学习中的度量——相关系数
    机器学习中的度量——统计上的距离
    redis数据结构和常用命令
    分布式一致性算法梳理
    zookeeper集群搭建及ZAB协议
    手写RPC框架(netty+zookeeper)
    zookerper入门、核心概念和使用场景
    RabbitMQ集群部署、高可用和持久化
  • 原文地址:https://www.cnblogs.com/louby/p/10672744.html
Copyright © 2011-2022 走看看