order by 구를 이용하여 정렬하고 싶은 열을 지정
지정된 열의 값에 따라 행 순서가 변경됨
select 열 from 테이블 where 조건식 order by 열
조건이 필요없는 경우에는 where 조건식 생략 가능
select 열 from 테이블 order by 열
mysql> select * from sub_regions;
+-----+---------------------+-----------+
| id | name | region_id |
+-----+---------------------+-----------+
| 1 | 강남역 | 1 |
| 2 | 신사/가로수길 | 1 |
| 3 | 신촌/홍대 | 1 |
| 4 | 합정/연남 | 1 |
| 5 | 종로/중구 | 1 |
| 6 | 건대/뚝섬 | 1 |
.
.
.
| 118 | 포항 | 16 |
| 119 | 경산 | 16 |
| 120 | 안동 | 16 |
| 121 | 영천 | 16 |
| 122 | 예천 | 16 |
| 123 | 청도 | 16 |
| 124 | 광주 | 17 |
+-----+----------------------+-----------+
mysql> select * from sub_regions order by name;
+-----+---------------------+-----------+
| id | name | region_id |
+-----+---------------------+-----------+
| 31 | 가평 | 2 |
| 7 | 강남/서초구 | 1 |
| 1 | 강남역 | 1 |
| 63 | 강릉 | 4 |
| 14 | 강북/도봉구 | 1 |
| 13 | 강서/양천구 | 1 |
.
.
.
| 49 | 평택 | 2 |
| 118 | 포항 | 16 |
| 52 | 하남 | 2 |
| 102 | 하동 | 11 |
| 4 | 합정/연남 | 1 |
| 105 | 홍성 | 12 |
| 30 | 화성 | 2 |
| 70 | 횡성 | 4 |
+-----+---------------------+-----------+
order by는 기본적으로 오름차순으로 정렬
아래와 같이 사용 가능
select 열 from 테이블 order by 열 asc
내림차순으로 정렬하고 싶으면 desc를 열 이름 뒤에 붙여서 사용 가능
select 열 from 테이블 order by 열 desc
order by로 행 순서를 변경해도 이는 실제 저장된 테이블에 영향을 주지 않음
select 열 from 테이블 where 조건식 order by 열1 asc, 열2 desc
위의 예시와 같이 열이름은 , 로 구분하고 desc인지 asc인지 명시해주면 복수의 열 정렬 가능
먼저 열1을 기준에 맞춰 정렬한 뒤 그 이후 정렬할 내용은 열2의 기준에 맞춰서 정렬하는 방식
아래의 예시를 참고
mysql> select * from users_frips;
+-----+---------+---------+
| id | frip_id | user_id |
+-----+---------+---------+
| 1 | 26 | 1 |
| 2 | 37 | 1 |
| 3 | 63 | 1 |
| 4 | 73 | 1 |
| 5 | 82 | 1 |
| 6 | 94 | 1 |
| 7 | 96 | 1 |
| 8 | 104 | 1 |
| 9 | 108 | 1 |
| 10 | 115 | 1 |
| 11 | 138 | 1 |
| 12 | 146 | 1 |
| 13 | 147 | 1 |
| 14 | 154 | 1 |
.
.
.
| 325 | 185 | 15 |
| 326 | 192 | 15 |
| 327 | 209 | 15 |
| 328 | 215 | 15 |
| 329 | 226 | 15 |
| 330 | 233 | 15 |
| 331 | 15 | 16 |
| 333 | 19 | 16 |
+-----+---------+---------+
하나의 열로 정렬한 경우
mysql> select * from users_frips order by frip_id;
+-----+---------+---------+
| id | frip_id | user_id |
+-----+---------+---------+
| 89 | 1 | 5 |
| 155 | 1 | 8 |
| 177 | 1 | 9 |
| 199 | 1 | 10 |
| 243 | 1 | 12 |
| 90 | 2 | 5 |
| 156 | 2 | 8 |
| 178 | 2 | 9 |
| 200 | 2 | 10 |
| 244 | 2 | 12 |
| 91 | 3 | 5 |
| 287 | 3 | 14 |
.
.
.
| 19 | 240 | 1 |
| 154 | 240 | 7 |
| 110 | 242 | 5 |
| 44 | 243 | 2 |
| 20 | 244 | 1 |
| 21 | 247 | 1 |
| 66 | 247 | 3 |
| 22 | 255 | 1 |
+-----+---------+---------+
두개의 열로 정렬한 경우
mysql> select * from users_frips order by frip_id, user_id desc;
+-----+---------+---------+
| id | frip_id | user_id |
+-----+---------+---------+
| 243 | 1 | 12 |
| 199 | 1 | 10 |
| 177 | 1 | 9 |
| 155 | 1 | 8 |
| 89 | 1 | 5 |
| 244 | 2 | 12 |
| 200 | 2 | 10 |
| 178 | 2 | 9 |
| 156 | 2 | 8 |
| 90 | 2 | 5 |
| 287 | 3 | 14 |
| 91 | 3 | 5 |
.
.
.
| 19 | 240 | 1 |
| 110 | 242 | 5 |
| 44 | 243 | 2 |
| 20 | 244 | 1 |
| 66 | 247 | 3 |
| 21 | 247 | 1 |
| 22 | 255 | 1 |
+-----+---------+---------+
한개의 열을 이용하여 정렬한 경우 user_id가 오름차순으로 정렬되어 있었음
두개의 열 중 user_id를 내림차순으로 정렬하라고 지정해두었을 경우 위와 같이 변경됨