2

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

当我使用这个查询时:

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

我得到的结果是 5 而不是 00005

4

4 回答 4

1

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

于 2013-01-25T20:18:51.560 回答
1

用零填充计算的数字。

 SELECT LPAD( MAX(num_dossier) + 1, 5, '0') AS MAX
   FROM amep_dossier
于 2012-11-08T16:07:27.753 回答
0

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

于 2012-11-08T16:01:36.490 回答
0

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

CREATE TABLE amep_dossier (
   num_dossier INT(5) ZEROFILL,
   ); 
于 2012-11-08T16:02:10.073 回答