order by position을 사용하면, wr_id 1 이 11 위에 올라와버려요.

order by position을 사용하면, wr_id 1 이 11 위에 올라와버려요.

QA

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문으로 하셔도 되겠네요


select * $tmp_write_table where wr_is_comment = 0 order by (CASE
WHEN wr_id ="11" then 1
WHEN wr_id ="39" then 2
WHEN wr_id ="1" then 3
WHEN wr_id ="23" then 4
WHEN wr_id ="56" then 5
ELSE 99 END ) LIMIT 0 , 5;

결과값 11 / 39 / 1 / 23 / 56
답변을 작성하시기 전에 로그인 해주세요.
전체 129,118 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT