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
).