Tenho uma coluna que possui strings do seguinte tipo:
Miller 10
Allen 20
King 10
....
Jones 100
Eu tento classificar a coluna com base na parte numérica dos dados.
Eu tentei o seguinte:
SELECT * FROM the_table ORDER BY CAST(RIGHT(data,2) AS UNSIGNED);
Mas isso não funciona. Ele coloca Jones 100
como a primeira entrada etc.
O que estou fazendo errado?
O MySQL tem uma função interna para analisar textos na forma de SUBSTRING_INDEX() .
Isso simplifica sua consulta para:
Procure o espaço e lance tudo depois do espaço
De uma chance !!!
Sua consulta não funcionou porque o RIGHT 2 de 100 é 00, que seria numericamente o primeiro.