mysql> create table test(a varchar(10), b varchar(10));
Query OK, 0 rows affected (0.03 sec)
mysql> insert into test (a,b) values ('8','12'), ('8','12a'), ('12','12a'), ('12a','12b'), ('12a','125');
Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select a,b,
-> case when cast(a as signed)=cast(b as signed)
-> then a<b
-> else cast(a as signed)<cast(b as signed)
-> end compare
-> from test;
+------+------+---------+
| a | b | compare |
+------+------+---------+
| 8 | 12 | 1 |
| 8 | 12a | 1 |
| 12 | 12a | 1 |
| 12a | 12b | 1 |
| 12a | 125 | 1 |
+------+------+---------+
5 rows in set, 7 warnings (0.00 sec)