where 에서 in 사용시 정렬이요..
쿼리 where 에서 in 사용할때요..
예를 들어
select * from 테이블 where 컬럼 in(55,11,33) 이런 조건으로 할때요..
값이 오름차수,내림차수가 아닌,
조건절 넣은 순서 그대로( 55,11,33 ) 정렬하고 싶을땐 어떻게 해야할까요?!
도통 감이 안오네요ㅠㅜ;
예를 들어
select * from 테이블 where 컬럼 in(55,11,33) 이런 조건으로 할때요..
값이 오름차수,내림차수가 아닌,
조건절 넣은 순서 그대로( 55,11,33 ) 정렬하고 싶을땐 어떻게 해야할까요?!
도통 감이 안오네요ㅠㅜ;
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 4개
ordr by case col when 55 then 1 when 11 then 2 when 33 then 3 end ASC
배열 안에 넣는 값들만 따로 프로그래밍 하시면 될듯싶어요
<?
$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;
?>
잘 적용됩니다.
감사합니다.