Before sorting in mysql
|user|(Column Name)
2-0904-2
52
100
101
102
103
104
108
109
11
112
113
114
12
13
14
15
16
18
2
After sorting in mysql
|user|(Column Name)
2-0904-2<br>
52
100
101
102
103
104
108
109
11
112
113
114
12
13
14
15
16
18
2
Expected result after sorting as per excel
|user|(Column Name)
2-0904-2
2
11
12
13
14
15
16
18
52
100
101
102
103
104
108
109
112
113
114
In MySQL, you can readily convert a string to a number. You can also test whether a character is a number.
This should produce the sort you are looking for:
order by (left(col, 1) betweeen '0' and '9') desc,
(col + 0),
col;
The first clause puts the numbers first. The second converts the leading digits to a number for sorting purposes. The last orders by the value of the column for strings.