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);
    }
posted @ 2020-09-27 14:27  SweetBaby。  阅读(1050)  评论(0编辑  收藏  举报