SQL UPDATE 반복문 질문입니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
SQL UPDATE 반복문 질문입니다.

QA

SQL UPDATE 반복문 질문입니다.

본문



$arr = array ('2380','2377','3767','3798',,,,,,,'5001');
$sql = "update TABLE set column1 = '1', column2 = '2', column3 = '2' where ID in (".implode(",",$arr).") ";.

.
.
$sql = "update TABLE set column1 = '1', column2 = '4', column3 = '0' where ID in (".implode(",",$arr).") ";

 

이런식으로 약 1000개를 업데이트 해야되는데요.

 

반복문을 써야할것 같아서 검색해보니 where절의 ID는 저런식을 하면 된다고 찾았는데

 

나머지 컬럼은 다 제각각이라.. 어떻게 해야할지 ,, 도움좀 부탁드립니다.

 

나머지도 in으로 하면되나요?

이 질문에 댓글 쓰기 :

답변 2

그럼 간단합니다

해당값을 들고있는 배열이 $arr라고했을때

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

  $sql = "update TABLE set column1 = '".$arr[$i]['colum1']."', column2 = '".$arr[$i]['colum2']."', column3 = '".$arr[$i]['colum3']."' where ID = '".$arr[$i]['ID']."'";

  sql_query($sql);

}

 

이렇게하면 되겠네요

컬럼의 내용이 어떤식으로 처리되냐에 따라 다를것 같네요

컬럼도 천개가 다 동일하고 데이터값만 달라집니다..

update TABLE set column1 = '1', column2 = '2', column3 = '0' where ...
.
.
.
1000번째도
update TABLE set column1 = '2', column2 = '8', column3 = '0' where...

이런식으로용,,

그 달라지는 데이터값을 어떤식으로 들고오나요?

ID값도 한 배열에 들어가있는데 저렇게되면 각 아이디에 들어갈 컬럼데이터 값이 섞이지않을까요?

ID값별로 들어갈 데이터값이 정의되어있어야 할것같네요

예를들자면..

$arr = array(array('id'=>'2380','column1'=>'1','column2'=>'2','column3'=>'0'),
array('id'=>'2377','column1'=>'2','column2'=>'8','column3'=>'0')...)
이런식으로되어있어야

각 아이디별로 컬럼값이 정상적으로 넣을수있고 여기서 반복문만 돌리면 끝날일이니깐요

네! 말씀하신대로 데이터를 불러오고잇습니다

그래서 for문으로 돌릴까 햇는데

혹시나해서 검색해보니 여기까지 와있습니다.

아주 정확히 말씀하신대로 데이터는 불러오고잇어요.

그럼 그냥 update문 전체를 포문으로 해야할까요?


arr = 데이터;

update 
테이블
set
컬럼1 = arr[i]['컬럼1데이터'],
컬럼2 = arr[i]['컬럼2데이터'],
컬럼3 = arr[i]['컬럼3데이터']
where
id = arr[i]['id'];



그냥.. 정석?대로 포문을 돌리는게 맞을까요?

답변을 작성하시기 전에 로그인 해주세요.
전체 78
QA 내용 검색
filter #for ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT