gpt4 book ai didi

sql - MySQL - 如何在邮政编码前加上 "0"?

转载 作者:行者123 更新时间:2023-11-29 15:37:43 25 4
gpt4 key购买 nike

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

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

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

因此,邮政编码为“00544”的“纽约州霍尔茨维尔”在我的数据库中存储为“544

邮政编码为“02026”的“马萨诸塞州戴德姆”在我的数据库中存储为“2026”。

我可以运行什么 SQL 来将“0”填充到任何长度不是 5 位数字的邮政编码?意思是,如果邮政编码长度为 3 位,则前面补“00”。如果邮政编码长度为 4 位,则前面只需补“0”。

更新:

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

最佳答案

将邮政编码存储为 CHAR(5) 而不是数字类型,或者在从数据库加载邮政编码时让应用程序用零填充它。一种使用 PHP 执行此操作的方法 sprintf() :

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

或者你可以让 MySQL 为你填充 LPAD() :

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

以下是更新和填充所有行的方法:

ALTER TABLE `table` CHANGE `zip` `zip` CHAR(5); #changes type
UPDATE table SET `zip`=LPAD(`zip`, 5, '0'); #pads everything

关于sql - MySQL - 如何在邮政编码前加上 "0"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58062837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com