Order By 1 in MySQL
Start your free 7-days trial now!
The ORDER BY 1 clause in MySQL translates in plain English to order by the first column selected in the SELECT statement. This syntax is not considered good practice as a change in the order of columns could lead to unintentionally ordering by the wrong column.
Example
Consider the following information about some students:
student_id | fname | lname | day_enrolled | age | username |
|---|---|---|---|---|---|
1 | Sky | Towner | 2015-12-03 | 17 | stowner1 |
2 | Ben | Davis | 2016-04-20 | 19 | bdavis2 |
3 | Travis | Apple | 2018-08-14 | 18 | tapple3 |
4 | Arthur | David | 2016-04-01 | 16 | adavid4 |
5 | Benjamin | Town | 2014-01-01 | 17 | btown5 |
The above sample table can be created using the code here.
To order retrieved results by the second selected column from students table:
SELECT * FROM studentsORDER BY 2;
+------------+----------+--------+--------------+------+----------+| student_id | fname | lname | day_enrolled | age | username |+------------+----------+--------+--------------+------+----------+| 4 | Arthur | David | 2016-04-01 | 16 | adavid4 || 2 | Ben | Davis | 2016-04-20 | 19 | bdavis2 || 5 | Benjamin | Town | 2014-01-01 | 17 | btown5 || 1 | Sky | Towner | 2015-12-03 | 17 | stowner1 || 3 | Travis | Apple | 2018-08-14 | 18 | tapple3 |+------------+----------+--------+--------------+------+----------+
Notice how the results are ordered alphabetically with respect to the second selected column (fname).
To order retrieved results by the third selected column given we only select fname, lname and age:
SELECT fname, lname, age FROM studentsORDER BY 3;
+----------+--------+------+| fname | lname | age |+----------+--------+------+| Arthur | David | 16 || Sky | Towner | 17 || Benjamin | Town | 17 || Travis | Apple | 18 || Ben | Davis | 19 |+----------+--------+------+
Notice how results are ordered in ascending order of the third column (age).