如何在 MySQL 查询中增加计算值(例如 MAX 值)而不会丢失零填充格式。我的格式是 00000(varchar 5)。我现在的最大值是 00004。如果我增加它,我想要 00005。
当我使用这个查询时:
SELECT max( `num_dossier` ) +1 AS max
FROM amep_dossier
我得到的结果是 5 而不是 00005
如何在 MySQL 查询中增加计算值(例如 MAX 值)而不会丢失零填充格式。我的格式是 00000(varchar 5)。我现在的最大值是 00004。如果我增加它,我想要 00005。
当我使用这个查询时:
SELECT max( `num_dossier` ) +1 AS max
FROM amep_dossier
我得到的结果是 5 而不是 00005
我在这里发现了一个 MySQL 错误报告,解释说使用 MAX() 函数不会从查询结果的列中删除 zerofill 标志,但它无法显示零。使用 LPAD() 工作正常。
用零填充计算的数字。
SELECT LPAD( MAX(num_dossier) + 1, 5, '0') AS MAX
FROM amep_dossier
如果您将其更改为 smallint(5),您可以将其设置为ZEROFILL
并且它会正确地自动递增。
我相信你会想要使用 ZEROFILL,http ://hashmysql.org/wiki/Zerofill,如果你使用 phpmyadmin,将你的字段设置为 INT 并将其属性为 (UNASSIGNED ZEROFILL)。
CREATE TABLE amep_dossier (
num_dossier INT(5) ZEROFILL,
);