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

· 2011-03-21 (월) 00:20:03 · 1653 · 4
쿼리 where 에서 in 사용할때요..

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

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

댓글 4개

2011-03-21 (월) 03:49:24
record 수가 많지 않다면 case문을 써 보세요.
ordr by case col when 55 then 1 when 11 then 2 when 33 then 3 end ASC
2011-03-21 (월) 09:48:57
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;
?>
2011-03-22 (화) 23:24:41
이렇게도 가능하군요^^
잘 적용됩니다.
감사합니다.
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

66,531건

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

+
제목 글쓴이 날짜 조회
11-03-22 조회 985
11-03-22 조회 4,399
11-03-22 조회 1,637
11-03-22 조회 1,648
11-03-22 조회 2,583
11-03-22 조회 1,630
11-03-22 조회 1,624
11-03-22 조회 1,887
11-03-22 조회 1,867
11-03-21 조회 1,661
11-03-21 조회 2.2만
11-03-21 조회 1,791
11-03-21 조회 1,643
11-03-21 조회 1,648
11-03-21 조회 1,617
11-03-21 조회 1,734
11-03-21 조회 951
11-03-21 조회 1,636
11-03-21 조회 1,654
11-03-20 조회 1,906