MySQL-如何在邮政编码前面加上“ 0”?
在我的MySQL InnoDB数据库中,我有要清除的脏邮政编码数据。
邮政编码是我的全部5位数字(例如“ 90210”)时的原始邮政编码数据。
但是由于某种原因,我在数据库中注意到,对于以“ 0”开头的邮政编码,0已被删除。
因此,“ ”与邮政编码“ 00544
”存储在我的数据库“ 544
”
和
“ ”与邮政编码“ 02026
”存储在我的数据库为“ 2026
”。
我可以使用哪种SQL在长度不为5位的任何邮政编码前面填充“ 0”?这意味着,如果邮政编码的长度为3位,则前面板为“
00”。如果邮政编码的长度为4位,则前面板仅为“ 0”。
:
我只是将邮政编码更改为数据类型VARCHAR(5)
回答:
将您的邮政编码存储为CHAR(5)而不是数字类型,或者从DB加载时将其填充为零。一种使用PHP的方式sprintf()
:
echo sprintf("%05d", 205); // prints 00205echo 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 typeUPDATE table SET `zip`=LPAD(`zip`, 5, '0'); #pads everything
以上是 MySQL-如何在邮政编码前面加上“ 0”? 的全部内容, 来源链接: utcz.com/qa/413334.html