Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Cadeia de ordem SQL como número


Se possível, você deve alterar o tipo de dados da coluna para um número se você armazenar apenas números de qualquer maneira.

Se você não puder fazer isso, converta o valor da coluna para um integer explicitamente com
select col from yourtable
order by cast(col as unsigned)

ou implicitamente por exemplo, com uma operação matemática que força uma conversão para número
select col from yourtable
order by col + 0

BTW MySQL converte strings da esquerda para a direita. Exemplos:
string value  |  integer value after conversion
--------------+--------------------------------
'1'           |  1
'ABC'         |  0   /* the string does not contain a number, so the result is 0 */
'123miles'    |  123 
'$123'        |  0   /* the left side of the string does not start with a number */