开发者社区> 问答> 正文

MySQL-如何在邮政编码前面加上“ 0”??mysql

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

邮政编码是我的全部5位数字(例如“ 90210”)时的原始邮政编码数据。

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

因此,“ 纽约Holtsville的 ”与邮政编码“ 00544”存储在我的数据库“ 544”

“ 戴德姆,MA ”与邮政编码“ 02026”存储在我的数据库为“ 2026”。

我可以使用哪种SQL在长度不为5位的任何邮政编码前面填充“ 0”?这意味着,如果邮政编码的长度为3位,则前面板为“ 00”。如果邮政编码的长度为4位,则前面板仅为“ 0”。

更新:

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

展开
收起
保持可爱mmm 2020-05-17 10:17:02 801 0
1 条回答
写回答
取消 提交回答
  • 将您的邮政编码存储为CHAR(5)而不是数字类型,或者从DB加载时将其填充为零。一种使用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来源:stack overflow

    2020-05-17 10:23:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像