2009-03-04 92 views

回答

22

嘗試將ZEROFILL屬性添加到該字段中。

1

是字段的整數嗎?如果是這樣,答案是,「爲什麼?這是一個整數!」 ;-)

+0

你是什麼意思? – 2009-03-04 16:33:33

+0

@ [32]:我的意思是,零填充整數的意義是什麼?它不會改變價值。這僅僅是爲了顯示目的嗎? – 2009-03-04 17:13:28

+0

@ [32]:沒關係,回答我自己的問題 - 這只是爲了顯示目的(參見http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html) – 2009-03-04 17:14:16

17

你能不能用零把它作爲一個整數和格式化它在你的SQL人類,例如,墊4個字符寬

select lpad(idcolumn,4,'0') from mytable; 

或者申報表時ZEROFILL使用,並指定所需的寬度:

create table tmpfoo (
    mykey int(6) zerofill not null auto_increment, 
    primary key(mykey) 
); 

insert into tmpfoo values(1),(2); 

select * from tmpfoo; 
+--------+ 
| mykey | 
+--------+ 
| 000001 | 
| 000002 | 
+--------+ 
5

如果您需要在零填充格式AUTO_INCREMENT列,我建議你顯示它是這樣,而不是試圖將其存儲在數據庫中的方式。

在PHP中,你可以使用下面的代碼來顯示或以其它方式使用id:

$padded_id = str_pad($id, 4, '0'); 
5

MySQL支持整數列ZEROFILL

mysql> create table foo (the_key int unsigned zerofill not null 
     auto_increment primary key); 
Query OK, 0 rows affected (0.21 sec) 

mysql> insert into foo SET the_key = Null; 
Query OK, 1 row affected (0.00 sec) 

... 

mysql> insert into foo SET the_key = Null; 
Query OK, 1 row affected (0.00 sec) 

mysql> select * from foo; 
+------------+ 
| the_key | 
+------------+ 
| 0000000001 | 
| 0000000002 | 
| 0000000003 | 
| 0000000004 | 
| 0000000005 | 
| 0000000006 | 
| 0000000007 | 
| 0000000008 | 
+------------+ 
8 rows in set (0.00 sec) 

您可能需要考慮使用smallint(5位數字)或修剪/填充。

2

要在數據庫墊設置id列ZEROFILL

但是,如果其僅用於顯示目的,我建議使用LPAD SELECT RIGHT( '000000' + yourNum,6);

相關問題