やり方
lpadという関数を使えばOK。
試してみる
### テーブルを作る。
mysql> create table demo(id serial primary key, n integer not null);
Query OK, 0 rows affected (0.02 sec)
### とりあえず3件データを挿入。
mysql> insert into demo(n) values(1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into demo(n) values(2);
Query OK, 1 row affected (0.00 sec)
mysql> insert into demo(n) values(300);
Query OK, 1 row affected (0.00 sec)
### 3桁 0埋め
mysql> select lpad(n, 3, '0') from demo;
+-----------------+
| lpad(n, 3, '0') |
+-----------------+
| 001 |
| 002 |
| 300 |
+-----------------+
3 rows in set (0.00 sec)
### 3桁 'A'埋め
mysql> SELECT lpad(n, 3, 'A') from demo;
+-----------------+
| lpad(n, 3, 'A') |
+-----------------+
| AA1 |
| AA2 |
| 300 |
+-----------------+
3 rows in set (0.00 sec)
確かになりました。
注意点
文字列が指定した桁より長かったらどうなるのか、、、
ちゃんとこう書いてありました。
Returns the string str, left-padded with the string padstr to a length of len characters. If str is longer than len, the return value is shortened to len characters.
mysql> SELECT LPAD('hi',4,'??'); -> '??hi' mysql> SELECT LPAD('hi',1,'??'); -> 'h'
やってみましょう。
mysql> select lpad(n, 2, 0) from demo;
+---------------+
| lpad(n, 2, 0) |
+---------------+
| 01 |
| 02 |
| 30 |
+---------------+
3 rows in set (0.00 sec)
ほんとだ。