mysql5.7在使用group by的注意事项
        【摘要】 @[toc](mysql5.7在使用group by的注意事项) 1、问题描述先看一个sql语句报错:select * from oilDaily group by wellId这是因为在mysql5.7中开启了sql_mode中的“only_full_group_by”,而这个在执行以往版本中带有group by的语句时就会报错。 2、解决方案(一):select查找的所有属性都必须出现在...
    
    
    
    @[toc](mysql5.7在使用group by的注意事项)
1、问题描述
先看一个sql语句报错:
select * from oilDaily group by wellId
 
 
 这是因为在mysql5.7中开启了sql_mode中的“only_full_group_by”,而这个在执行以往版本中带有group by的语句时就会报错。
2、解决方案(一):
select查找的所有属性都必须出现在group by中
 比如下面这样(这也是官网的标准写法):
select a,b from test group by a,b
 
 3、解决方案(二)
在不需要group by的属性上面使用any_value()函数
 例如:
select any_value(oilId),wellId from oilDaily group by wellId
 
 4、解决方案(三)
我们直接删除sql_mode中的only_full_group_by
 我用的mysql云数据库,修改方式如下:
1、云数据库修改方案:
点击管理
 
 点击参数设置
 
 找到sql_mode选项
 
 去掉ONLY_FULL_GROUP_BY的勾选。
 
之后重启下云数据库就行
2、本地数据库修改方案:
如果你是用的本地数据库执行以下命令即可:
 set @@global.sqlmode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
 
 你设置上面的值最好用select @@global.sqlmode查一下,再将ONLY_FULL_GROUP_BY去掉,将剩下的赋值给sqlmode即可。
            【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
                cloudbbs@huaweicloud.com
                
            
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)