如何在MySQL中将自动增量格式设置为0001?

时间:2009-03-04 16:26:41

标签: mysql

如何以4位数格式自动增加MySQL?

因此,而不是'1'使'0001'?

6 个答案:

答案 0 :(得分:24)

尝试将ZEROFILL属性添加到字段中。

答案 1 :(得分: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 |
+--------+

答案 2 :(得分:6)

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位数)或修剪/填充。

答案 3 :(得分:5)

如果你需要零填充格式的auto_increment列,我建议你这样显示它,而不是试图以这种方式将它存储在数据库中。

在PHP中,您可以使用以下代码显示或以其他方式使用id:

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

答案 4 :(得分:2)

要在数据库中填充,请将id列设置为ZEROFILL

但如果仅用于显示目的,我建议使用LPAD     选择右('000000'+ yourNum,6);

答案 5 :(得分:1)

该字段是整数吗?如果是这样,答案是,“为什么?这是一个整数!” ; - )