数据库数字字段以0开头

时间:2011-01-26 10:59:11

标签: php sql mysql database types

我正在使用名为area_code的字段,该字段在MySQL中具有int数据类型。但它不允许我存储精确值,如0781,0727,0788 Bcoz,它们从0开始。 它将值存储为781,727和788,即它从值中截断0并保存它。

请帮帮我..

5 个答案:

答案 0 :(得分:6)

区号不是数字,而是文本(仅包含数字)。将area_code声明为适当大小的varchar字段。

答案 1 :(得分:4)

drop table if exists foo;
create table foo
(
area_code smallint(4) unsigned zerofill not null default 0
)
engine=innodb;

insert into foo (area_code) values (781),(727);

select * from foo;
+-----------+
| area_code |
+-----------+
|      0781 |
|      0727 |
+-----------+

http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

答案 2 :(得分:3)

使用基于字符的数据类型而不是数字数据类型。

答案 3 :(得分:3)

使用VARCHAR,因为您不需要使用区号

进行任何算术操作

答案 4 :(得分:3)

如果您希望结果为4位数,您可以这样做:

select lpad(area_code, 4, '0') from zipcode_list;

现在您可以将3个数字存储在数据库中,然后返回零。