I have a query ordered by column
:
select * from mytable order by column asc — sort table
column
type is varchar, so the output is:
1
10
100
11
12
13
How should I sort if I want them to sort by numeric value so the output is:
1
10
11
12
13
100
You can use this if you want to treat
column
asINT
only:Or this if you want to treat
column
as bothINT
andVARCHAR
If we simply modify the order by declaration slightly (add “+0″ to the order by field), you can force MySQL to sort the field naturally.
This should work as well:
select * from varchar_sort order by convert( replace(actual_user_id, '-',''), SIGNED INTEGER ) asc
Use: