如何在MySQL中按字母顺序排列由数字组成的字段?

时间:2015-09-30 13:05:27

标签: mysql sql-order-by

如何在MySQL中对包含字母后面的数字的字段进行排序,例如10s?所需的顺序是:

  • 数字,例如10
  • 数字+字母,例如10s

例如,

# Original data:
1
10
105
109
10s

# Desired results
1
10
10s
105
109

2 个答案:

答案 0 :(得分:2)

试试这个:

SELECT values FROM Table ORDER BY CAST(values AS UNSIGNED), values;

答案 1 :(得分:1)

一种可能的方法:

ORDER BY CAST(alphanum AS UNSIGNED), alphanum

...或者,更简洁:

ORDER BY alphanum + 0, alphanum

Demo