mybloger

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

这个问题的原因是,在这种模式下,sql分组时默认只能select + 分组字段以及聚合函数,相当于做一个规范检查
但很多时候并不需要这个检查,因为真实sql中,分组后很多字段是1对1的,比如分组id,那么其他字段都可以查出来才对
这是可以修改一下这种配置,基本上有三种方式:
1、修改sql的配置文件
一下为mysql的例子
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
2、写sql修改
SELECT @@sql_mode;
SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY,',''));
3、在jdbc连接中指定sql_mode方式
url: jdbc:mysql://127.0.0.1:3306/wms_new?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&jdbcCompliantTruncation=false&sessionVariables=explicit_defaults_for_timestamp=OFF,group_concat_max_len=2048,sql_mode='NO_ZERO_IN_DATE,NO_ZERO_DATE'

posted on 2024-05-08 10:10  万能包哥  阅读(193)  评论(0编辑  收藏  举报