在我的 MySQL InnoDB 数据库中,我有想要清理的脏邮政编码数据。
干净的邮政编码数据是指我拥有邮政编码的所有 5 位数字(例如“90210”)。
但由于某种原因,我在数据库中注意到,对于以“0”开头的邮政编码,0 已被删除。
So "纽约州霍尔茨维尔“带有邮政编码”00544
“在我的数据库中存储为”544
"
and
"马萨诸塞州戴德姆“带有邮政编码”02026
“在我的数据库中存储为”2026
".
我可以运行什么 SQL 将“0”前面填充到任何长度不是 5 位数字的邮政编码?意思是,如果邮政编码长度为 3 位,则前面补“00”。如果邮政编码长度为 4 位,则前补“0”。
UPDATE:
我刚刚将邮政编码更改为数据类型 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)