我正在使用名为area_code的字段,该字段在MySQL中具有int数据类型。但它不允许我存储精确值,如0781,0727,0788 Bcoz,它们从0开始。 它将值存储为781,727和788,即它从值中截断0并保存它。
请帮帮我..
答案 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 |
+-----------+
答案 2 :(得分:3)
使用基于字符的数据类型而不是数字数据类型。
答案 3 :(得分:3)
使用VARCHAR,因为您不需要使用区号
进行任何算术操作答案 4 :(得分:3)
如果您希望结果为4位数,您可以这样做:
select lpad(area_code, 4, '0') from zipcode_list;
现在您可以将3个数字存储在数据库中,然后返回零。