簡體   English   中英

以0開頭的數據庫數字字段

[英]Database numeric field starting with 0

我正在使用一個名為area_code的字段,該字段在MySQL中具有int數據類型。 但是它不允許我存儲精確的值,如0781,0727,0788 Bcoz,它們從0開始。它存儲的值分別為781、727和788,即從值中截斷0並保存。

請幫我..

區號不是數字,而是文本(僅包含數字)。 將area_code聲明為適當大小的varchar字段。

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

使用基於字符的數據類型,而不是數字數據類型。

使用VARCHAR,因為您不需要對區號進行任何算術運算

如果您希望結果為4位數字,則可以按以下方式進行操作:

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

現在,您可以將3個數字存儲在數據庫中,然后返回零。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM