我是靠谱客的博主 热心荔枝,最近开发中收集的这篇文章主要介绍MySql 生成自定义格式的编码_并更新保存到表指定的表字段,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

生成出来的编码格式例子: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 生成自定义格式的编码_并更新保存到表指定的表字段所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部