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

· 14년 전 · 1588 · 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,592
14년 전 조회 2.2만
14년 전 조회 1,721
14년 전 조회 1,555
14년 전 조회 1,585
14년 전 조회 1,542
14년 전 조회 1,666
14년 전 조회 872
14년 전 조회 1,563
14년 전 조회 1,589
14년 전 조회 1,841
14년 전 조회 2,001
14년 전 조회 1,005
14년 전 조회 1,444
14년 전 조회 1,939
14년 전 조회 1,670
14년 전 조회 1,578
14년 전 조회 1,439
14년 전 조회 1,642
14년 전 조회 1,568