mysql 前缀 + 编号 补0


拼接字符串: CONCAT('PAS',LPAD(partition_id,4,0))

填充字符串左边:LPAD

  LPAD(str,len,padstr)
  返回字符串str,将其左填充字符串padstr至len个字符的长度。 如果str大于len,则返回值缩短为len个字符。

填充字符串右边:RPAD

  RPAD(str,len,padstr)
  返回字符串str,用padstr右填充字符串,长度为len个字符。 如果str大于len,则返回值缩短为len个字符

1、根据前传 + 主键长度补0

update pf_partition_management set partition_no=CONCAT('PAS',LPAD(partition_id,4,0)) WHERE partition_no=''

2、如果前缀 + 主键长度大于4,取主键长度补0,否则为4的长度

update pf_partition_management set partition_no=CONCAT('PRE',LPAD(partition_id,(case when LENGTH(partition_id)>4 then LENGTH(partition_id) else 4 end),0)) WHERE partition_no=''

3、JAVA代码前缀补0:

    /**
     * 根据前缀和id,生成新的编号
     *
     * @param prefix 前缀
     * @param id     ID
     * @return
     */
    public static String getSerialNumber(String prefix, Long id) {
        return prefix + String.format("%04d", id);
    }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM