如何按 MySQL 中由数字后跟字母组成的字段进行排序?
How to ORDER BY a field consisting of digits following by alphabets in MySQL?
如何在MySQL中对由数字后跟字母组成的字段进行ORDER BY,例如10s
?所需的顺序是:
- 位数,例如
10
- 数字+字母,例如,
10s
例如,
# Original data:
1
10
105
109
10s
# Desired results
1
10
10s
105
109
一种可能的方法:
ORDER BY CAST(alphanum AS UNSIGNED), alphanum
...或者,稍微简洁一点:
ORDER BY alphanum + 0, alphanum
Demo.
试试这个:
SELECT values FROM Table ORDER BY CAST(values AS UNSIGNED), values;
如何在MySQL中对由数字后跟字母组成的字段进行ORDER BY,例如10s
?所需的顺序是:
- 位数,例如
10
- 数字+字母,例如,
10s
例如,
# Original data:
1
10
105
109
10s
# Desired results
1
10
10s
105
109
一种可能的方法:
ORDER BY CAST(alphanum AS UNSIGNED), alphanum
...或者,稍微简洁一点:
ORDER BY alphanum + 0, alphanum
Demo.
试试这个:
SELECT values FROM Table ORDER BY CAST(values AS UNSIGNED), values;