mysql 쿼리문 질문 드립니다.
본문
데이터 쿼리는 3개 테이블 조인문을 사용했습니다.
A 테이블 -> 회원정보
B 테이블 -> 회원상세정보
C 테이블 -> 계약정보
리스트로 Loop 를 돌렸을때 C의 계약정보에 월세가 납입되는 날짜 값이 존재 합니다.
데이터는 매달 몇일 이기에 날짜값만 넣었습니다.
리스트로 나열될때 가장 오늘과 가까운 데이터를 우선으로 나열할수있는 방법이 무엇일까요??
ORDER BY 절을 사용하는것까진 알겠는데 그 뒤를 모르겠네요..
데이터는
1. 14일 데이터
2. 15일 데이터
3. 16일 데이터
4. 17일 데이터
라고 할때 리스트의 나열 순서가 3, 4, 1, 2 로 되었음 합니다.
도와주세요.
답변 5
ORDER BY DATEDIFF(curdate(), date_column) ASC;
데이터를 가져올때 이번달의 기준으로 데이터를 가져와서 일자별로 정렬을 하면 좋을듯 한데
지금기준은 일자만의 기준이라 정렬이 애매하긴 합니다. 만약 위 기준으로 정렬을 하려면
월별 컬럼에 월기준을 넣어서 정렬을 해주셔야 합니다.
3,4,1,2의 기준이 무엇인지 모르겠지만,
아마도 오늘, 내일,,, 그리고 날짜순의 기준인거 같은데, 이 기준이 맞다면
ORDER BY FIELD(date_column,내일,오늘) desc 로 정렬하시면 됩니다.
order by field asc
데이터를 저장할때 order_idx 같은 컬럼을 추가하고 원하시는 순번을 넣어 order by order_idx asc 하심이 좋아보입니다. 쿼리로 제어하기에는 변수가 많을거 같습니다.
답변을 작성하시기 전에 로그인 해주세요.