Debes tener algo así
Código SQL:
Ver originalmysql> SELECT *FROM order_text;
+-------+
| campo |
+-------+
| 1-1 |
| 1-2 |
| 1-3 |
| 1-4 |
| 1-5 |
| 1-6 |
| 1-7 |
| 1-9 |
| 1-8 |
| 1-11 |
| 1-12 |
| 1-22 |
+-------+
12 ROWS IN SET (0.00 sec)
Entonces debes ordenar solo la parte numerica del campo después del guión.
Para esto puedes hacer uso de la función substring y convertirla a entero para ordenarla.
Código SQL:
Ver originalmysql> SELECT *FROM order_text ORDER BY CAST(SUBSTRING(campo,3) AS UNSIGNED) DESC;
+-------+
| campo |
+-------+
| 1-22 |
| 1-12 |
| 1-11 |
| 1-9 |
| 1-8 |
| 1-7 |
| 1-6 |
| 1-5 |
| 1-4 |
| 1-3 |
| 1-2 |
| 1-1 |
+-------+
12 ROWS IN SET (0.00 sec)
mysql> SELECT *FROM order_text ORDER BY CAST(SUBSTRING(campo,3) AS UNSIGNED) ASC;
+-------+
| campo |
+-------+
| 1-1 |
| 1-2 |
| 1-3 |
| 1-4 |
| 1-5 |
| 1-6 |
| 1-7 |
| 1-8 |
| 1-9 |
| 1-11 |
| 1-12 |
| 1-22 |
+-------+
12 ROWS IN SET (0.00 sec)
mysql>
espero te sirva