2011-01-26 63 views
0

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

请帮我..

+0

K非常感谢所有人......... – Pushpendra 2011-01-26 11:05:51

回答

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

+0

+1对zerofill – RichardTheKiwi 2011-01-26 11:23:49

6

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

3

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

3

使用VARCHAR,因为你不需要做任何算术操作与区号

3
如果你希望你的结果4个数字你也许可以做到这样

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

现在你可以在你的数据库中存储3个数字并返回零。

相关问题