How to ORDER BY varchar field as number?
It looks like "proc" is a string (varchar
field), so it gets ordered lexically. If it is so, you can probably order it by
SELECT `proc` FROM `table` ORDER BY convert(`proc`, decimal) DESC;
Please note that such queries will be very slow, and for any serious usage it's better to use numeric columns for storing numeric data.
The column field for proc is a VARCHAR or CHAR and it's treating it as a literal string--sorting alphabetically.
Convert the column to double or float or cast the value
SELECT `proc` FROM `table` ORDER BY CAST(`proc` AS decimal) DESC;