数据库
MySQL Oracle 时间类型查询区别
对应的 mybatisPlus 直接使用 likeRight Oracle日期类型字段会无效查询
MySQL GROUP_BY问题
报错:this is incompatible with sql_mode=only_full_group_by
原因
mysql5.7以上版本会出现此问题
mysql 5.7版本以上默认的sql配置是:sql_mode=”ONLY_FULL_GROUP_BY”,这个配置严格执行了”SQL92标准”
ONLY_FULL_GROUP_BY
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中。简而言之,就是SELECT后面接的列必须被GROUP BY后面接的列所包含
select a,b from table group by a,b,c; (正确)
select a,b,c from table group by a,b; (错误)
查看 sql_mode
select @@GLOBAL.sql_mode;
临时解决
重启mysql数据库服务之后,ONLY_FULL_GROUP_BY还会出现
set @@GLOBAL.sql_mode=""
set@@GLOBAL.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=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重启
service mysqld stop
service mysqld start
查看状态
service mysqld status
修复数据库的最大错误连接数
解决方法一:
show variables like '%max_connect_errors%';
更改数据库的最大错误连接数
set global max_connect_errors = 1000;
show variables like '%max_connect_errors%';
解决方法二:
清理一下hosts文件
flush hosts;
解决方法三:
重启mysqld
Oracle in 1000条问题
解决:
<select id="selectUserIds" parameterType="java.util.List" resultType="String">
select USER_ID from WFJT_USER_INFO where USER_ID in
<foreach collection="list" item="item" index="index" open="(" close=")">
<if test="index !=0">
<choose>
<when test="index % 1000 == 999">) OR USER_ID IN (</when>
<otherwise>,</otherwise>
</choose>
</if>
#{item}
</foreach>
</select>
日夜颠倒头发少 ,单纯好骗恋爱脑 ,会背九九乘法表 ,下雨只会往家跑 ,搭讪只会说你好 ---- 2050781802@qq.com