SQL如何添加前导0

时间:2018-06-12 10:26:41

标签: mysql

任何帮助都会非常感激..我对mySQL很新,并认为必须有一种更简单的方法来更新我的数据库。

所以我的问题是我有许多记录没有前导零,但我需要任何记录中的字符总数为5。

e.g。 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;

由于

4 个答案:

答案 0 :(得分:3)

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;

答案 1 :(得分:1)

要在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;

此致

答案 2 :(得分:0)

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

这会将5个零和您的ID连接到类似于&#39; 000001234&#39;的内容。然后它选择最右边的5个字符。

答案 3 :(得分:0)

您没有指定tab_id_master.ID类型。如果它是数字类型,您将无法存储带前导零的数字,但您可以使用LPAD()

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