테스트 사이트 - 개발 중인 베타 버전입니다

DB 바로 수정하기 채택완료

동도로로동 3년 전 조회 2,890

g5_shop_item 이라는 테이블에 it_id가 a-1이면 it_order를 2로 바꿔라 이거 어떻게 해야하나요?ㅜㅜ

 

예를들어 

t_id가 a-1이면 it_order를 001

t_id가 a-3이면 it_order를 005

t_id가 b-3이면 it_order를 007

  ......

로 변경해라 

 

그런데 이런걸 500개 정도 한번에 하려고 하는데 어떻게 해야할지 궁금합니다.

데이터는 엑셀로 있는데 관리자모드에서 일일히 수정하려니 하나하나 클릭해야 해서 너무 번거로운데 혹시 DB에서 바로 수정가능한가요? 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
3년 전

id 종류나 컬럼 자료타입(int) 고려해서 수정/추가 후 테스트 해보세요.

테스트는 일단 $target_id 부분을 최소화 하신 후...

 

</p>

<p>$target_id = array('a-1', 'a-3', 'b-3');

$result = sql_query(" select it_id from g5_shop_item ", false);

for($i=0; $row = sql_fetch_array($result); $i++) {

    if(!in_array($row['it_id'], $target_id)) continue;

    switch($row['it_id']) {

        case 'a-1'    :    $order_num = 1; break;

        case 'a-3'    :    $order_num = 5; break;

        case 'b-3'    :    $order_num = 7; break;

    }

    sql_query(" update g5_shop_item set it_order = '{$order_num}' where it_id = '{$row['it_id']}' ");

}</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

3년 전

</p>

<p>it_id값이 a-1, a-3~~~~이런 모양이 맞나요?</p>

<p>값을 일일이 넣어서 코드를 만드는 것 자체가 어려운 일이니 아래처럼</p>

<p>list스킨(list.10.skin.php ) 상단에 넣어서 페이지를 한번 실행한 후 삭제하세요</p>

<p> </p>

<p>$idStr = 'a-1,a-3,b-3.............'; // 500개 모두 나열</p>

<p>$odStr ='1,5,7.......................'; //위의 500개와 순서가 같도록 나열</p>

<p>$idArr = explode(',', $idStr);</p>

<p>$odArr = explode(',', $odStr);</p>

<p>foreach($idArr as $key=>$val){</p>

<p> $od_num = $odArr[$key]; </p>

<p> sql_query("update g5_shop_item set it_order='$od_num' where it_id='$val' ");</p>

<p>}</p>

<p>

 

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

select ... order by

case when t_id='a-1' then '001'

when t_id='a-3' then '005'

when t_id='b-31' then '007' else '999' end, it_order 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

엑스엠엘
3년 전
select가 아니라 update를 원하시는 거군요.

update g5_shop_item set it_order= case when t_id='a-1' then '001'

when t_id='a-3' then '005'

when t_id='b-31' then '007' else '999' end

댓글을 작성하려면 로그인이 필요합니다.

3년 전

규칙이 없다면 디비에서 해도 똑같이 하나씩 처리를 해주셔야 합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인