sql如何添加前导0

0md85ypi  于 2021-06-21  发布在  Mysql
关注(0)|答案(4)|浏览(271)

任何帮助都将不胜感激。。我是mysql的新手,我想应该有一个更简单的方法来更新我的数据库。
所以我的问题是,我有很多记录没有前导零,但是我需要任何记录中的字符总数是5。
e、 6930实际上应该是06930
我遇到了这个代码,但我无法让它正常工作,有人能给我指出正确的方向。

UPDATE `it_asset_register`.`tab_id_master` 
 SET tab_id_master.ID = LEFT('00000', 5-LEN(tab_id_master.ID)) +    tab_id_master.ID
 WHERE ID = '8407' AND LEN(tab_id_master.ID)<5 AND Len(tab_id_master.ID)>0;

谢谢

0s0u357o

0s0u357o1#

lpad应该在这里完成这项工作:

SELECT LPAD ('123', 5, '0');
00123

SELECT LPAD ('12345', 5, '0');
12345

尝试:

UPDATE `it_asset_register`.`tab_id_master` 
 SET tab_id_master.ID = LPAD (tab_id_master.ID, 5, '0')
 WHERE ID = '8407' AND LENGTH(tab_id_master.ID)<5 AND LENGTH(tab_id_master.ID)>0;
lfapxunr

lfapxunr2#

你没有具体说明 tab_id_master.ID 类型。如果它是一个数字类型,你将不能存储一个带前导零的数字,否则你可以使用 LPAD() :

SET tab_id_master.ID = LPAD(tab_id_master.ID, 5, 0)
wn9m85ua

wn9m85ua3#

UPDATE
    table_name
SET
    column_name = RIGHT('00000' + CAST(column_name AS CHAR), 5)

这会将5个零和您的id连接到类似“000001234”的内容。然后选择最右边的5个字符。

oxosxuxt

oxosxuxt4#

要在mysql中连接两个或多个字符串,必须使用 CONCAT() 功能。可能的解决方案是:

UPDATE tab_id_master
SET id = SUBSTRING(CONCAT('00000', id), -5)
WHERE LENGTH(id) > 0 AND LENGTH(id) < 5;

或者您可以使用 LPAD() 功能:

UPDATE tab_id_master
SET id = LPAD(id, 5, '0')
WHERE LENGTH(id) > 0 AND LENGTH(id) < 5;

当做

相关问题