概述
生成出来的编码格式例子:YHCF0000000001、YHCF0000000002、.... 、YHCF0000000010、YHCF0000000011、
mysql sql
-- 获取最大的编码数据,生成新的自定义格式的编码,并更新保存到表指定的表字段
update m_medicament_info m1
-- 生成的编码已表数据的形式赋值给 m1.sys_goods_code (因为 update 关键字不能有子查询)
INNER JOIN (
-- 用CONCAT拼接前缀:“YHCF”;
-- 用 LPAD 拼接编码,每次加 1,数值长度为 10, 左边补充 “0”;
-- 用 REPLACE 去掉查询出的值的“YHCF”
-- 用 SELECT 排序查询一条最大编码的数据编码(用于计算下一个编码)
SELECT CONCAT('YHCF', LPAD(1 + REPLACE(( SELECT mi.sys_goods_code FROM m_medicament_info mi ORDER BY mi.sys_goods_code DESC LIMIT 1 ), 'YHCF', ''), 10, '0')) AS `sysGoodsCode`
) sgc
-- 生成的编码已表数据的形式赋值给 m1.sys_goods_code
set m1.sys_goods_code = sgc.sysGoodsCode
-- 被修改的数据id
where m1.id = 402841;
mapper 代码
<update id="produceSysGoodsCode">
UPDATE m_medicament_info m
INNER JOIN (
SELECT CONCAT('YHCF', LPAD(1 + REPLACE(
( SELECT mi.sys_goods_code FROM m_medicament_info mi ORDER BY mi.sys_goods_code DESC LIMIT 1 )
, 'YHCF', ''), 10, '0')) AS `sysGoodsCode`
) sgc
SET m.sys_goods_code = sgc.sysGoodsCode
WHERE m.id = #{id};
</update>
最后
以上就是热心荔枝为你收集整理的MySql 生成自定义格式的编码_并更新保存到表指定的表字段的全部内容,希望文章能够帮你解决MySql 生成自定义格式的编码_并更新保存到表指定的表字段所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复