• 字符集和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不规范的问题 

  • 相关阅读:
    最短路必经点(边)
    [HNOI2008]越狱
    【模版】卢卡斯定理
    偶数
    [USACO17FEB]Why Did the Cow Cross the Road I S
    [USACO17FEB]Why Did the Cow Cross the Road II S
    [USACO07NOV]电话线Telephone Wire
    [JSOI2007]祖码Zuma
    单人纸牌_NOI导刊2011提高(04)
    [USACO13OPEN]重力异常
  • 原文地址:https://www.cnblogs.com/wuyiyuan/p/15236170.html
Copyright © 2020-2023  润新知