如何按数学顺序对具有数字的字段进行排序

时间:2010-11-12 08:07:57

标签: mysql natural-sort

我们的数据库中包含以下用户..

create table users (id, name);

name [u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, ...]

如果上述字段按升序排序,则输出如下:

u1, u10, u11, u2, u3, u4 ...

是否可以按照顶部的顺序对此进行排序(即列出所有单个数字,两位数......)

2 个答案:

答案 0 :(得分:2)

尝试:

SELECT *
FROM users
ORDER BY CAST(SUBSTR(name FROM 2) AS UNSIGNED)

答案 1 :(得分:2)

你可以试试这个:

SELECT name
FROM users
ORDER BY LENGTH(name), name