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

在MySQL数据库中,由于某些原因,以'0'开头的邮政编码丢失了首位'0'。要解决这个问题,可以将邮政编码字段更改为VARCHAR(5),然后使用SQL的LPAD函数在邮政编码不足5位时在其前面填充'0'。例如,`UPDATE table SET zip=LPAD(zip, 5, '0')`。还可以考虑在数据类型中使用ZEROFILL属性,例如`MEDIUMINT(5) UNSIGNED ZEROFILL`,以自动填充'0'。" 81677193,7959406,免费下载抖音无水印视频教程,"['短视频', '社交媒体', '下载工具', '视频处理']
摘要由CSDN通过智能技术生成

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`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值