zoukankan      html  css  js  c++  java
  • 字符集和sql语句GROUPBY查询的版本问题

    在开发项目的时候,遇到了比较老的版本mysql驱动 ,而我使用的是mysql8.0的驱动


     


     在一开始连接的时候报了

    Unknown initial character set index '255' received from server
    

      这是编码字符集的问题需要更改,只需要更改相对应配置文件得数据库连接url即可

    jdbc.jdbcUrl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
    

      


    在连接数据库的时候测试一些JSP页面的时候标签链接的时候报了个错误

    Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'tmp1.count1'
    

      

    在查询一番之后发现是版本的问题

    在5.7的版本后mysq使用新手册声明:

    MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY
    SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。(5.7.5之前,MySQL没有检测到功能依赖关系,默认情况下不启用ONLY_FULL_GROUP_BY。有关5.7.5之前的行为的说明,请参见“MySQL5.6参考手册”。)

    即使需要在数据库中添加相关设置


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

      


    在上述设置之后就可以进行正常维护以前因为老版本导致的写sql不规范的问题 

  • 相关阅读:
    2.12 使用@DataProvider
    2.11 webdriver中使用 FileUtils ()
    Xcode8 添加PCH文件
    The app icon set "AppIcon" has an unassigned child告警
    Launch Image
    iOS App图标和启动画面尺寸
    iPhone屏幕尺寸、分辨率及适配
    Xcode下载失败 使用已购项目页面再试一次
    could not find developer disk image
    NSDate与 NSString 、long long类型的相互转化
  • 原文地址:https://www.cnblogs.com/wuyiyuan/p/15236170.html
Copyright © 2011-2022 走看看