如果它是一位数字,我想在字母数字字符串中添加零。
我得到的是这样的:
CV-1-1A
CV-1-32
CV-12-24
CV-1-2
CV-1-2A
我想将其更改为:
CV-01-01A
CV-01-32
CV-12-24
CV-01-02
CV-01-02A
如果它是一位数字,我想在字母数字字符串中添加零。
我得到的是这样的:
CV-1-1A
CV-1-32
CV-12-24
CV-1-2
CV-1-2A
我想将其更改为:
CV-01-01A
CV-01-32
CV-12-24
CV-01-02
CV-01-02A
LPAD
可用于零填充(或用任何字符填充)字符串。但是,它不能在字符串中工作,因此需要一些技巧。假设您的所有值都具有a-b-c
where的格式a
,b
并且c
是最多 3 个字符的字符串,您可以使用SUBSTRING_INDEX
将字符串分成几部分,LPAD
每个部分单独,然后CONCAT
将它们全部重新组合在一起:
SELECT CONCAT(SUBSTRING_INDEX(col, '-', 1),
'-',
LPAD(SUBSTRING_INDEX(SUBSTRING_INDEX(col, '-', 2), '-', -1), 2, '0'),
'-',
LPAD(SUBSTRING_INDEX(col, '-', -1), 3, '0'))
FROM t;
这是一个带有工作示例的SQLFiddle 。