我正在使用名为area_code的字段,该字段在MySQL中具有int数据类型。但它不允许我存储像0781,0727,0788 Bcoz这样的精确值,它们以0开头。 它将值存储为781,727和788,即从值中截取0并保存。以0开头的数据库数字字段
请帮我..
我正在使用名为area_code的字段,该字段在MySQL中具有int数据类型。但它不允许我存储像0781,0727,0788 Bcoz这样的精确值,它们以0开头。 它将值存储为781,727和788,即从值中截取0并保存。以0开头的数据库数字字段
请帮我..
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 |
+-----------+
+1对zerofill – RichardTheKiwi 2011-01-26 11:23:49
区号不是数字,而是文本(只包含数字)。将area_code声明为适当大小的varchar字段。
使用基于字符的数据类型而不是数字数据类型。
使用VARCHAR,因为你不需要做任何算术操作与区号
:
select lpad(area_code, 4, '0') from zipcode_list;
现在你可以在你的数据库中存储3个数字并返回零。
K非常感谢所有人......... – Pushpendra 2011-01-26 11:05:51