mybatis-plus问题解决
问题:先以字母排序然后以数字排序,排序后的效果如:a a1 a2 b b1 b2 c1 c2
解决:
SELECT * FROM "t_room" ORDER BY
cast(floor AS DECIMAL),
SUBSTRING(layer FROM '^(.*?)(\\d+)?$'),
COALESCE(SUBSTRING(layer FROM ' (\\d+)$')::INTEGER, 0)
问题:数据库是字符串类型,进行范围比较大小
解决:
DATE_FORMAT(T.CREATE_TIME,'%Y-%m-%d') BETWEEN #{startTime} and #{endTime}
问题:mybatis-plus 的 QueryWrapper 中使用 where 语句
解决:
Page queryPage=new Page<>(page,limit);
QueryWrapper queryWrapper=new QueryWrapper<>();
queryWrapper.eq(StrUtil.isNotEmpty(state),"state",state);
queryWrapper.apply(StrUtil.isNotEmpty(time),"DATE_FORMAT(year,'%Y-%m-%d') ='"+time+"'");
问题:mysql设置创建时间字段和更新字段自动获取时间,填充时间
解决:
-- 修改 create_time 设置默认时间 CURRENT_TIMESTAMP
ALTER TABLE `table_name`
MODIFY COLUMN `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ;
-- 修改 update_time 设置默认时间 ON UPDATE CURRENT_TIMESTAMP
ALTER TABLE `table_name`
MODIFY COLUMN `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间' ;
问题:mybatis-plus 去重复查询
解决:
QueryWrapper queryWrapper=new QueryWrapper<>();
queryWrapper.select("DISTINCT year");
List list= baseMapper.selectList(queryWrapper);