2

MySQLクエリで、ゼロフィル形式を失うことなく、MAX値などの計算値をインクリメントするにはどうすればよいですか。私のフォーマットは00000(varchar 5)です。現在の最大値は00004です。インクリメントする場合は00005が必要です。

このクエリを使用する場合:

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

00005ではなく5の結果が得られます

4

4 に答える 4

1

計算された数値をゼロで左パディングします。

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

ここで、MAX()関数を使用してもクエリ結果の列からゼロフィルフラグが削除されないが、ゼロを表示できないことを説明するMySQLバグレポートを見つけました。LPAD()の使用は正常に機能します。

于 2013-01-25T20:18:51.560 に答える
0

smallint(5)に変更した場合は、に設定するとZEROFILL、適切に自動インクリメントされます。

于 2012-11-08T16:01:36.490 に答える
0

ゼロフィル(http://hashmysql.org/wiki/Zerofill )を使用し、フィールドをINTとして設定し、phpmyadminを使用している場合は、フィールドを(UNASSIGNED ZEROFILL)として属性付けすることをお勧めします。

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