在这种情况下,如何使用MySQL的Order By?

时间:2017-01-05 14:59:50

标签: mysql sql-order-by

Select name, LENGTH(name) 
  from Employees 
  order by LENGTH(name);

为什么这不能给我排序长度?它仍在根据名称进行排序。

输入员工:

Emp | Salary
------------
DEF |  30
PQRS|  40
ABC |  30
WXY |  20

预期:

ABC  3
DEF  3
WXY  3
PQRS 4

2 个答案:

答案 0 :(得分:2)

测试:

SELECT name, LENGTH(name) 
FROM Employees 
ORDER BY 2;

然后你的查询似乎也有效。

答案 1 :(得分:1)

您的预期输出显示按长度排序的数据,然后是名称,但您的SQL不能保证。

Select name, LENGTH(name) 
  from Employees 
  order by LENGTH(name), name;

上述修改将首先按长度排序,然后按名称排序,您将获得输入的预期输出。