準備
以下のテーブルで確認する。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | mysql> SELECT * FROM test_order; +------+------+ | num1 | num2 | +------+------+ |    1 |   10 | |    1 |   20 | |    1 |   30 | |    2 |   10 | |    2 |   20 | |    2 |   30 | |    3 |   10 | |    3 |   20 | |    3 |   30 | +------+------+ 9 rows in set (0.00 sec) | 
指定方法
ORDER BYで指定したカラムをキーにして並べ替える。デフォルトは昇順でASCを指定したのと同じ。
SELECT カラム群 FROM テーブル ORDER BY カラム [ASC/DESC];
以下の例では、2つ目のnum2で昇順にソートしている。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | mysql> SELECT * FROM test_order ORDER BY num2; +------+------+ | num1 | num2 | +------+------+ |    1 |   10 | |    2 |   10 | |    3 |   10 | |    1 |   20 | |    2 |   20 | |    3 |   20 | |    1 |   30 | |    2 |   30 | |    3 |   30 | +------+------+ 9 rows in set (0.00 sec) | 
降順でソートする場合はDESCを指定。以下はnum2カラムの内容で降順にソートしている。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | mysql> SELECT * FROM test_order ORDER BY num2 DESC; +------+------+ | num1 | num2 | +------+------+ |    1 |   30 | |    2 |   30 | |    3 |   30 | |    1 |   20 | |    2 |   20 | |    3 |   20 | |    1 |   10 | |    2 |   10 | |    3 |   10 | +------+------+ 9 rows in set (0.00 sec) | 
複数カラムでのソート
ORDER BYで複数カラムを指定すると、指定したカラムの順でネストの外側のようにしてソートする。
以下の例では、num1で降順ソートし、その中でnum2で降順ソートしている。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | mysql> SELECT * FROM test_order ORDER BY num1 DESC, num2 DESC; +------+------+ | num1 | num2 | +------+------+ |    3 |   30 | |    3 |   20 | |    3 |   10 | |    2 |   30 | |    2 |   20 | |    2 |   10 | |    1 |   30 | |    1 |   20 | |    1 |   10 | +------+------+ 9 rows in set (0.00 sec) | 
順番を入れ替えた例。まずnum2で降順ソートしてから、その中でnum1でソートしている。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | mysql> SELECT * FROM test_order ORDER BY num2 DESC, num1 DESC; +------+------+ | num1 | num2 | +------+------+ |    3 |   30 | |    2 |   30 | |    1 |   30 | |    3 |   20 | |    2 |   20 | |    1 |   20 | |    3 |   10 | |    2 |   10 | |    1 |   10 | +------+------+ 9 rows in set (0.00 sec) |