mysql 쿼리문 질문 드립니다. 채택완료
데이터 쿼리는 3개 테이블 조인문을 사용했습니다.
A 테이블 -> 회원정보
B 테이블 -> 회원상세정보
C 테이블 -> 계약정보
리스트로 Loop 를 돌렸을때 C의 계약정보에 월세가 납입되는 날짜 값이 존재 합니다.
데이터는 매달 몇일 이기에 날짜값만 넣었습니다.
리스트로 나열될때 가장 오늘과 가까운 데이터를 우선으로 나열할수있는 방법이 무엇일까요??
ORDER BY 절을 사용하는것까진 알겠는데 그 뒤를 모르겠네요..
데이터는
1. 14일 데이터
2. 15일 데이터
3. 16일 데이터
4. 17일 데이터
라고 할때 리스트의 나열 순서가 3, 4, 1, 2 로 되었음 합니다.
도와주세요.
답변 5개
답변에 대한 댓글 3개
원하는데로 나오고 있습니다.
댓글을 작성하려면 로그인이 필요합니다.
데이터를 저장할때 order_idx 같은 컬럼을 추가하고 원하시는 순번을 넣어 order by order_idx asc 하심이 좋아보입니다. 쿼리로 제어하기에는 변수가 많을거 같습니다.
댓글을 작성하려면 로그인이 필요합니다.
3,4,1,2의 기준이 무엇인지 모르겠지만,
아마도 오늘, 내일,,, 그리고 날짜순의 기준인거 같은데, 이 기준이 맞다면
ORDER BY FIELD(date_column,내일,오늘) desc 로 정렬하시면 됩니다.
답변에 대한 댓글 2개
알려주신 방식으로 처리 햇을 경우 실 데이터가 14, 30, 18 일경우 14, 18, 30 순으로 나열됩니다.
제가 원하고자 하는건 18, 30, 14 순으로 나였이 되었음 하는 바램입니다.
많은 참고로 된 것 같네요..
댓글을 작성하려면 로그인이 필요합니다.
데이터를 가져올때 이번달의 기준으로 데이터를 가져와서 일자별로 정렬을 하면 좋을듯 한데
지금기준은 일자만의 기준이라 정렬이 애매하긴 합니다. 만약 위 기준으로 정렬을 하려면
월별 컬럼에 월기준을 넣어서 정렬을 해주셔야 합니다.
답변에 대한 댓글 4개
ORDER BY FIELD(Date, 오늘(16), 내일(17), 0) DESC, Date ASC
이러게 해봤는데...먹히긴 하는데...틀린것 같기도 하고....
어렵네요..
월을 매월이기에 일자만 DB에 저장했는데...14일 일 경우 3월14일, 4월 14일 5월14일...
계속 반복할 내용이라서...
많은 참고가 되었습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
로 해봤는데...데이터가 14일과 22일 존재 할경우 14일이 우선 순위 입니다.
14일은 지난 날짜가 되어서 후순위가 되어야 하는데요..ㅜㅜ