gpt4 book ai didi

sql - MySQL - 如何使用 "0"填写邮政编码?

转载 作者:IT老高 更新时间:2023-10-28 12:51:51 26 4
gpt4 key购买 nike

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

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

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

因此,邮政编码为“00544”的“Holtsville, New York”在我的数据库中存储为“544

邮政编码为“ 02026”的

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

我可以运行什么 SQL 到任何长度不是 5 位的邮政编码的前面填充“0”?意思是,如果邮政编码长度为 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/3200754/

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