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

SQL UPDATE 반복문 질문입니다. 채택완료

humanb2box 5년 전 조회 4,174

</span></p>

<pre>
<span style="font-family:맑은 고딕;">$arr = array ('2380','2377','3767','3798',,,,,,,'5001');
$sql = "update TABLE set column1 = '1', column2 = '2', column3 = '2' where ID in (".implode(",",$arr).") ";.</span></pre>

<p><span style="font-family:맑은 고딕;">.</span></p>

<p><span style="font-family:맑은 고딕;">.</span></p>

<p><span style="font-family:맑은 고딕;">$sql = "update TABLE set column1 = '1', column2 = '4', column3 = '0' where ID in (".implode(",",$arr).") ";</span></p>

<p><span style="font-family:맑은 고딕;">

 

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

 

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

 

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

 

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

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

답변 2개

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

그럼 간단합니다

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

for($i=0;$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);

}

 

이렇게하면 되겠네요

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

답변에 대한 댓글 2개

h
humanb2box
5년 전
생각햇던대로 반복문으로 넣는게 맞나보네용 ㅎㅎ 감사합니다

where in을 쓰는것은 id값만 달라질때 쓰나보네요 ㅎㅎ
P
Policia
5년 전
네 해당방법은 컬럼데이터는 동일한데 특정ID에만 적용하고싶을때 하시면 되는방법입니다

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

Policia
5년 전

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

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

답변에 대한 댓글 4개

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

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

이런식으로용,,
P
Policia
5년 전
그 달라지는 데이터값을 어떤식으로 들고오나요?

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

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

예를들자면..

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

각 아이디별로 컬럼값이 정상적으로 넣을수있고 여기서 반복문만 돌리면 끝날일이니깐요
P
Policia
5년 전
데이터값이 달라지는데 WHERE절에 IN으로 반복문돌려봤자 마지막에 들어간 컬럼값으로 다 덮어씌워질꺼에요..
h
humanb2box
5년 전
네! 말씀하신대로 데이터를 불러오고잇습니다

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

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

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

그럼 그냥 update문 전체를 포문으로 해야할까요?
[code]
arr = 데이터;

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

[/code]

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

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

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

로그인