MySQLクエリで、ゼロフィル形式を失うことなく、MAX値などの計算値をインクリメントするにはどうすればよいですか。私のフォーマットは00000(varchar 5)です。現在の最大値は00004です。インクリメントする場合は00005が必要です。
このクエリを使用する場合:
SELECT max( `num_dossier` ) +1 AS max
FROM amep_dossier
00005ではなく5の結果が得られます
MySQLクエリで、ゼロフィル形式を失うことなく、MAX値などの計算値をインクリメントするにはどうすればよいですか。私のフォーマットは00000(varchar 5)です。現在の最大値は00004です。インクリメントする場合は00005が必要です。
このクエリを使用する場合:
SELECT max( `num_dossier` ) +1 AS max
FROM amep_dossier
00005ではなく5の結果が得られます
計算された数値をゼロで左パディングします。
SELECT LPAD( MAX(num_dossier) + 1, 5, '0') AS MAX
FROM amep_dossier
ここで、MAX()関数を使用してもクエリ結果の列からゼロフィルフラグが削除されないが、ゼロを表示できないことを説明するMySQLバグレポートを見つけました。LPAD()の使用は正常に機能します。
smallint(5)に変更した場合は、に設定するとZEROFILL
、適切に自動インクリメントされます。
ゼロフィル(http://hashmysql.org/wiki/Zerofill )を使用し、フィールドをINTとして設定し、phpmyadminを使用している場合は、フィールドを(UNASSIGNED ZEROFILL)として属性付けすることをお勧めします。
CREATE TABLE amep_dossier (
num_dossier INT(5) ZEROFILL,
);