where 에서 in 사용시 정렬이요..

· 14년 전 · 1560 · 4
쿼리 where 에서 in 사용할때요..

예를 들어
select * from 테이블 where 컬럼 in(55,11,33) 이런 조건으로 할때요..

값이 오름차수,내림차수가 아닌,
조건절 넣은 순서 그대로( 55,11,33 ) 정렬하고 싶을땐 어떻게 해야할까요?!
도통 감이 안오네요ㅠㅜ;
|

댓글 4개

record 수가 많지 않다면 case문을 써 보세요.
ordr by case col when 55 then 1 when 11 then 2 when 33 then 3 end ASC
in 안의 숫자는 많지 않겠지만 값의 갯수와 숫자는 매번 달라지는 경우거든요..ㅠ
간단히 프로그램 만들어 봤어요.. 배열로 이렇게 하시면 될듯 하기도 한데요

배열 안에 넣는 값들만 따로 프로그래밍 하시면 될듯싶어요

<?
$value_f = array("55","11","33");

$sql = "select * from 테이블 where col in (";

$cnt = count($value_f);
for($i=0;$i<$cnt;$i++){

$sql .= $value_f[$i];
if($i!=($cnt-1)) $sql .= ",";
}

$sql .= ") order by case col ";
for($j=0;$j<$cnt;$j++){
$k = $j+1;
$sql .= "when ".$value_f[$j]." then ".$k." ";
}

$sql .= " end ASC";

echo $sql;
?>
이렇게도 가능하군요^^
잘 적용됩니다.
감사합니다.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
14년 전 조회 1,567
14년 전 조회 2.2만
14년 전 조회 1,693
14년 전 조회 1,531
14년 전 조회 1,564
14년 전 조회 1,511
14년 전 조회 1,643
14년 전 조회 842
14년 전 조회 1,523
14년 전 조회 1,561
14년 전 조회 1,812
14년 전 조회 1,971
14년 전 조회 978
14년 전 조회 1,420
14년 전 조회 1,909
14년 전 조회 1,642
14년 전 조회 1,552
14년 전 조회 1,415
14년 전 조회 1,614
14년 전 조회 1,544
🐛 버그신고