以下 code テーブルが varchar の場合、
sortしても順番通りにならない。
mysql> select code from books
order by code asc;
+---------+
| code |
+---------+
| 1 |
| 10 |
| 100 |
| 1000 |
| 10000 |
| 100000 |
| 1000001 |
| 1000002 |
| 100001 |
| 100002 |
+---------+
- cast を使う。 (mysql 4.0.2以降で対応)
mysql> select code from books
order by cast(code as signed);
+---------+
| code |
+---------+
| 1 |
| 10 |
| 100 |
| 1000 |
| 10000 |
| 100000 |
| 100001 |
| 100002 |
| 1000001 |
| 1000002 |
+---------+