如何增加MAX值而不会丢失前导零格式

时间:2012-11-08 15:58:37

标签: mysql

如何在MySQL查询中增加计算值(如MAX值)而不会丢失零填充格式。我的格式是00000(varchar 5)。我现在的最大值是00004.如果我增加它,我想要00005。

当我使用此查询时:

        SELECT max( `num_dossier` ) +1 AS max
        FROM amep_dossier

我的结果是5而不是00005

4 个答案:

答案 0 :(得分:1)

用零填充计算出的数字。

 SELECT LPAD( MAX(num_dossier) + 1, 5, '0') AS MAX
   FROM amep_dossier

答案 1 :(得分:1)

我发现了一个MySQL错误报告here,解释说使用MAX()函数不会从查询结果中的列中删除zerofill标志,但它无法显示零。使用LPAD()工作正常。

答案 2 :(得分:0)

如果您将其更改为smallint(5),则可以将其设置为ZEROFILL并且它会自动正确递增。

答案 3 :(得分:0)

我相信您会想要使用ZEROFILL,http://hashmysql.org/wiki/Zerofill,将您的字段设置为INT并将其归为(UNASSIGNED ZEROFILL),如果您使用的是phpmyadmin。

CREATE TABLE amep_dossier (
   num_dossier INT(5) ZEROFILL,
   );