๊ฒฐ๊ณผ ์งํฉ์ ์ฌ๋ฌ ์ด๋ก ์ ๋ ฌํ๋ ค๋ฉด ORDER BY ์ ์ ,(์ผํ) ๋ก ๊ตฌ๋ถ๋ ์ด ๋ชฉ๋ก์ ์ง์ ํฉ๋๋ค. ์๋๋ ์์ ์ ๋๋ค.
ํ ์ด๋ธ
id | user_id | title | status | created_at |
1 | 123456789 | ๊ฐ์ํ | OK | 2020-01-08 |
2 | 456789 | ๋๋ฉด | OK | 2020-01-09 |
3 | 123789 | ์ผ๊ณํ | COMPLETE | 2020-01-10 |
4 | 12312 | ์ผ์ต | OK | 2020-01-09 |
5 | 45678943 | ์กฑ๋ฐ | COMPLETE | 2020-01-13 |
์กฐ๊ฑด
- ์ต์ ์์ผ๋ก ๋ํ๋๊ฒ ํ๋ค.
- status ๊ฐ์ด COMPLETE ์ธ row๋ ๋งจ ์๋์ ๋ฐฐ์น๋์ด์ผ ํ๋ค.
SQL
ORDER BY ๋ค์ค์ ๋ ฌ์ ํ ๋, ์ผ์ชฝ๋ถํฐ ์์ฐจ์ ์ผ๋ก ์ ๋ ฌ๋๊ธฐ ๋๋ฌธ์ ์์๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
(=์ฐ์ ์์๊ฐ ๋์ ์์๋๋ก ๋์ดํ์.)
์ฆ, ORDER BY column1 desc, column2 desc; ๋ผ๋ฉด
column1 ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ํ, column1์ด ๊ฐ์ ๊ฐ์ ํํด์ column2๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ฒ ๋ค๋ ๋ป์ด๋ค.
๋ฐ๋ผ์ ์์ ์ ๊ฒฝ์ฐ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ค๋ฉด ์๋ ์์๋ก ์ ๋ ฌ์ ํด์ผํฉ๋๋ค.
- status
- createdAt
select * from ํ ์ด๋ธ order by status desc, created_at desc;
ASC - ์ค๋ฆ์ฐจ์(default), DESC - ๋ด๋ฆผ์ฐจ์
์ด ๊ฒฝ์ฐ ORDER BY์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋จผ์ ๊ฒฐ๊ณผ ์งํฉ์ 'status' ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํฉ๋๋ค.
- ๊ทธ๋ฐ ๋ค์ ์ ๋ ฌ ๋ ๊ฒฐ๊ณผ ์งํฉ์ 'createdAt' ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํฉ๋๋ค.
- ์ด ๋จ๊ณ์์ 'status' ๊ฐ์ ์์๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ์ค์ง 'createdAt' ๊ฐ์ ์์๋ง ๋ณ๊ฒฝ๋ฉ๋๋ค.
๊ฒฐ๊ณผ
id | user_id | title | status | created_at |
2 | 456789 | ๋๋ฉด | OK | 2020-01-09 |
4 | 12312 | ์ผ์ต | OK | 2020-01-09 |
1 | 123456789 | ๊ฐ์ํ | OK | 2020-01-08 |
5 | 45678943 | ์กฑ๋ฐ | COMPLETE | 2020-01-13 |
3 | 123789 | ์ผ๊ณํ | COMPLETE | 2020-01-10 |
์ฐธ๊ณ
'๐CS > DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DB] N + 1 ๋ฌธ์ (0) | 2021.04.11 |
---|---|
[DB] Index (1) | 2021.04.04 |
[MySQL] Resotre Workspace ์ค๋ฅ (0) | 2019.12.10 |
[Sequelize v5] ์ํ๋ผ์ด์ฆ find ํจ์ ์ค๋ฅ (0) | 2019.05.29 |
[MySQL] MySQL ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ๋ฐฉ๋ฒ (0) | 2019.05.22 |
๋๊ธ