此处ID格式为E0001 这种5位的 其他格式请自行变动
#获取最大ID值
set @val=(select user_id from user_info ORDER BY user_id desc LIMIT 0,1);
#去掉第一位
set @h=left(@val,1);
#从第二位获取所有
set @val=SUBSTR(@val,2);
#转成整数并加一
set @val=CONVERT(@val,SIGNED)+1;
#格式化val并补位为0
set @val=CONCAT(@h,LPAD(@val,4,'0'));
SELECT @val;
以下为转化为Sql语句形式,mybaits用SqlProvider这种方式可能不不太好搞,因为如果要同一时间插入 需要 insert into select 这种东西来搞
但其实也可以搞 只是字段多了写出来看起来一大坨 还不好维护 , 如果是用xml的话应该比较好弄 可以直接用标签搞了 鉴于项目使用注解形式,
且此处业务并不频繁,所以就直接用个sql整出来了
SELECT (SELECT CONCAT(LEFT(C.ID,1),LPAD(CONVERT(SUBSTR(C.ID,2),SIGNED)+1,4,'0'))
FROM (SELECT USER_ID AS ID FROM USER_INFO ORDER BY USER_ID DESC LIMIT 0,1) AS C) AS CC