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)
知道发生了什么吗?列名在选择列表中,因此应该可以使用。
答案 0 :(得分:4)
按列位置的顺序基于查询结果。对于您的查询,您可以选择1(名字)或2(姓氏)。
按列排序不是基于表中的位置。