将前导零添加到mySQL列

时间:2015-01-31 22:09:50

标签: mysql

我为此尝试了几种解决方案,但似乎都没有效果。我有一个INT(10)的邮政编码列。

我需要将其转换为(我猜是VARCHAR),以便可以存储带有前导零的邮政编码。现在它们是“8721”而不是“08721”。

我试过了:

SELECT RIGHT('0000'+ CONVERT(VARCHAR,zip_code),5) AS NUM FROM p23data;

但是我收到了错误:

check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARCHAR,zip_code),5) AS NUM FROM p23data' at line 1

我认为以上是创建新列,但我只需要更新现有的zip_code列。

我在这里做的不是什么?

2 个答案:

答案 0 :(得分:8)

LPAD将处理前导零:

ALTER TABLE p23data CHANGE zip_code zip_code CHAR(5);
UPDATE p23data SET zip_code = LPAD(zip_code, 5, '0');

答案 1 :(得分:-1)

邮政编码不是INT ...它们是五个(或九个或十一个)字符串,恰好由字符09组成。