테스트 사이트 - 개발 중인 베타 버전입니다

쿼리 질문드립니다. 채택완료

제이프로 8년 전 조회 2,191


 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

SELECT * FROM #table ORDER BY IF(column_5 < 1, column_1, column_5)

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

제이프로
8년 전
우선 답변 감사드립니다.
위 코드로 적용해보니 우선 column_5 값이 없는 원본글들이 먼저 쭉 출력되고, 맨 나중에 column_5 값이 있는 관련글들이 출력됩니다.
왕계란
8년 전
http://nyaongii.dothome.co.kr/sir.png
칼럼 형식이 어떤 건지 모르겠지만 안 된다 하셔서 제 계정에 테이블을 생성해서 테스트했습니다.
테이블명은 tt
칼럼1 : idx
칼럼2 : title
칼럼3 : par

위에 캡쳐된 이미지 보면 아시겠지만 정렬은 말씀하신 대로 나옵니다.
column_5 칼럼 형식이 어떤 건지 모르겠지만 int로 바꿔서 테스트 해 보시기 바랍니다.

댓글을 작성하려면 로그인이 필요합니다.

8년 전

지금의 구조를 조금 수정하는 게 좋을 듯 합니다. 


원글의 경우에도 column_5를 채워줍니다. (원글인 경우에는 column_1 과 동일값)

1번글은 column_1 도 1, column_5 도 1

2번글은 column_1 도 2, column_5 도 2

...

6번글은 column_1 은 6, column_5 는 2

7번글은 column_1 은 7, column_5 는 1


select *

  from Table

 order by column_5, column_1


로 소팅이 가능합니다.


관련글이 2개이상이라면, 관련글 표시 순서 칼럼 추가 생성을 생각해 볼 수 있습니다.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

제이프로
8년 전
기존 로직의 order 첫번째 요소가 column_1으로 되어있기 때문에 이를 바꾸게 된다면 기존 틀을 모두 바꿔야 하는 상황입니다..
마르스컴퍼니
8년 전
그런 상황이라면.. 저는 잘 모르겠습니다.

새로 알아보시는 게 좋을 듯 합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인