А не проще ли вот так:
PHP код:
select * from `123` order by 0+text
Если text всегда будет начинаться с /^\d\./ - все будет успешно сортироваться
Код:
mysql> select * from `123` order by 0+text;
+----+-----------+
| id | text |
+----+-----------+
| 3 | 1. Текст |
| 2 | 2. Текст |
| 1 | 10. Текст |
| 4 | 11. Текст |
| 5 | 20. Текст |
+----+-----------+
5 rows in set (0.01 sec)