MySQL按位置未知列排序

时间:2018-10-15 16:26:10

标签: mysql sql

ORDER BY列的位置在MySQL中似乎不起作用,尽管reference manual指出应该。

employees' table中使用Employees Sample Database-

mysql> select first_name, last_name from employees order by 4;
ERROR 1054 (42S22): Unknown column '4' in 'order clause'

这是桌子-

mysql> describe employees;
+------------+---------------+------+-----+---------+-------+
| Field      | Type          | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| emp_no     | int(11)       | NO   | PRI | NULL    |       |
| birth_date | date          | NO   |     | NULL    |       |
| first_name | varchar(14)   | NO   |     | NULL    |       |
| last_name  | varchar(16)   | NO   |     | NULL    |       |
| gender     | enum('M','F') | NO   |     | NULL    |       |
| hire_date  | date          | NO   |     | NULL    |       |
+------------+---------------+------+-----+---------+-------+
6 rows in set (0.01 sec)

知道发生了什么吗?列名在选择列表中,因此应该可以使用。

1 个答案:

答案 0 :(得分:4)

按列位置的顺序基于查询结果。对于您的查询,您可以选择1(名字)或2(姓氏)。

按列排序不是基于表中的位置。