テーブルにINTフィールドがあり、ゼロが埋め込まれた文字列として選択したいと思います。したがって、たとえば、8は008
として、23は023
として出力されます。これはMySQLクエリで可能ですか?
LPAD
関数を探しています:
SELECT LPAD(23, 3, '0'); -- '023'
編集:
コメントで@Bradが指摘しているように、ZEROFILLを使用して列を定義することもできます。
`foo` INT(3) ZEROFILL
これにより、常に少なくとも3桁の数値が生成されます(3桁未満の数値はゼロパッドされ、それ以上の影響はありません)。 (1つのクエリだけでなく)常にそのように数字を出す必要がある場合に便利です...
より大きな数の結果をカットせずに最小数のパディングを実現したい場合は、IF
ステートメントを使用する必要があります。
以下の例では、すべてのIDが3桁以上であることを確認し、それよりも大きいIDはトリミングせずに通過させます。
SELECT IF(id < 100, LPAD(id, 3, 0), id)