如何动态编辑mysql数据行?

时间:2016-06-13 14:03:41

标签: mysql sql database

是否可以通过SQL在我的数据库中的现有数据中添加额外的字符?即,我有这些行,我需要在zip_codes上添加额外的0。

id    | state_abbr | zip_code
16993 | MA         |   1001
16994 | MA         |   1002
16995 | MA         |   1003

我想将其更改为:

id    | state_abbr | zip_code
16993 | MA         |   01001
16994 | MA         |   01002
16995 | MA         |   01003

2 个答案:

答案 0 :(得分:1)

这取决于您的列类型

如果将zip_code存储为整数,则无法在数据库中添加前导零。

MySQL数据类型概述:

如果你使用varchar,你可以在zip_code之前或之后添加你想要的任何内容。

使用varchar:

的示例
UPDATE `{tablename}` SET `zip_code` = CONCAT('0', `zip_code`);

答案 1 :(得分:1)

当且仅当列'zip_code'的数据类型是varchar(string)时,您可以使用以下SQL来根据需要更新值:

UPDATE <tablename> SET zip_code = CONCAT('0',zip_code)
WHERE CHAR_LENGTH(zip_code) = 4
OR
(zip_code LIKE '0%' AND CHAR_LENGTH(zip_code) < 5)

我相信最后的OR条件不会有所作为,但如果这符合您的需要......