mysql sql 0填充_sql - MySQL - 如何用“0”填充前面的邮政编码?

sql - MySQL - 如何用“0”填充前面的邮政编码?

在我的MySQL InnoDB数据库中,我有要清理的脏邮政编码数据。

干净的邮政编码数据是当我拥有邮政编码的所有5位数字时(例如“90210”)。

但出于某种原因,我注意到在我的数据库中,对于以“0”开头的邮政编码,0已被删除。

所以带有邮政编码“02026”的“Holtsville,New York”在我的数据库中存储为“2026”

邮编“02026”的“Dedham,MA”在我的数据库中存储为“2026”。

我可以在前面填充“0”到任何长度不是5位的邮政编码的SQL上运行什么SQL? 意思是,如果邮政编码长度为3位,则前垫“00”。 如果邮政编码长度为4位,则前面板只有“0”。

更新:

我刚刚将邮政编码更改为数据类型VARCHAR(5)

8个解决方案

181 votes

将您的邮政编码存储为CHAR(5)而不是数字类型,或者在从数据库加载时将应用程序填充为零。 使用LPAD()进行PHP的方法:

echo sprintf("%05d", 205); // prints 00205

echo sprintf("%05d", 1492); // prints 01492

或者您可以使用LPAD()为MySQL填充它:

SELECT LPAD(zip, 5, '0') as zipcode FROM table;

这是一种更新和填充所有行的方法:

ALTER TABLE `table` CHANGE `zip`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值