강의로 돌아가기
buildcode49

[MySQL] 보호시작일이 빠른 순이면 DESC 아닌가요?

ORDER BY절에서 DESC(최신순 정렬)를 써야 한다고 생각하는데 답이 ASC라 혼란스럽습니다.

  • 날짜가 빠른(최신) 순으로 정렬: 최신의 날짜(가장 큰 값)가 맨위에 오게 정렬 > 내림차순 정렬인 DESC 활용

  • 날짜가 느린(오래된) 순으로 정렬: 가장 오래된 날짜(가장 작은 값)가 맨위에 오게 정렬 > 오름차순 정렬인 ASC 활용

작성중인 코드―solution.sql
1
2
3
4
5
6
7
-- 코드를 입력하세요
SELECT A.ANIMAL_ID, A.NAME
 FROM ANIMAL_INS A, ANIMAL_OUTS B
WHERE A.ANIMAL_ID = B.ANIMAL_ID
 AND A.DATETIME > B.DATETIME
ORDER BY A.DATETIME
;
  • 유지원

    보호시작일이 빠른순이면 일찍들어온날짜, 일찍들어왔으니 오래된 순이지 않을까요? 날짜가 빠른 = 날짜가 작은 = 현재로부터 날짜가 멀어질수록 작아집니다 그렇기에 오래된순으로 적용이 되는거죠! 비슷한예로 오후 9시를 기준으로 '오후 3시', '오후 6시'를 봤을때 시간이 빠른/이른순이면 오후 3시 -> 오후 6시가 되고 시간이 느린순으로 보면 오후 6시 -> 오후3시가 되겠죠! 날짜도 마찬가지로 6일을 기준으로 봤을때 3일이 날짜가 빠르기때문에 , 오래된날짜에 해당하고 6일이 느리기때문에 최신날짜에 해당하는거죠 ㅎㅎ

    유지원―2023.05.01 20:37
  • midmost44@gmail.com

    단순하게 "시간이 더 빠르다" 를 sql 로 나타내면 SELECT * FROM tableA WHERE columnA < columnB 가 됩니다. 즉 가장 작을 수록 가장 빠르다고 볼 수 있습니다.

    midmost44@gmail.com―2023.07.15 04:12
  • kimny0325@gmail.com

    같은 궁금증이 있었는데 해결되었어요! 질문 주신 분 답변 주신 분 모두 감사합니다 :)

    kimny0325@gmail.com―2024.07.28 18:07
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다.