order by position을 사용하면, wr_id 1 이 11 위에 올라와버려요. 채택완료
안녕하세요. :)
최근게시물에서 wr_id 값을 지정하여 호출하고 있는데요.
$sql = " select * from $tmp_write_table where wr_id IN($wid) and wr_is_comment = 0 order by position(wr_id in '$wid'), $rows ";
$wid 는 배열된 wr_id 값이에요. "11,39,1,23,56" 이런식으로요.
position은 $wid의 배열순서 그대로 호출하려고 사용하였습니다.
문제는 wr_id 가 1 일때에요.
11,39,1,23,56 순서대로 호출되어야 하는데, 1만 나오면
1,11,39,23,56 이렇게 되어버려요.
position 을 사용하면, 1 이 11 위에 올라오던가. 2 가 21 위에 올라와버리던가. 10 이 100 위에 올라와버려요. ;;
해결할 방법이 없을까요?
도움 부탁 드려요.
답변 2개
예)
select idx from test_table where idx in ('29','11','1','21','100','18') order by FIELD(idx ,'29','11','1','21','100','18')
order by FIELD 로 한번 해보시는게....
또는 CASE문으로 하셔도 되겠네요
답변에 대한 댓글 2개
''를 빼야 되더라구요. zzzmin님 감사 드립니다.ㅎ
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
order by FIELD (wr_id,'$wid') , $rows ";
이렇게 적용하였는데요. 배열이 순서대로 나오질 않아요;
어떻게 해결 할 방법이 없을까요?