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

도움요청 .. mysql 테이블의 여유필드값의 수정

· 13년 전 · 1961 · 4
p.s; 새벽에 고민을 하다가 마땅한 로직이 생각이 나질 않아서 도움글을 좀 부탁해봅니다


작업칼럼명 기존 필드값 변경 필드값
-------------------------------------------
wr_7 1031|52000 1031|55000
wr_7 1037|52000 1037|55000
wr_7 1047|52000 1047|55000
wr_7 1060|52000 1060|55000
wr_7 1096|52000 1096|55000
wr_7 1105|52000 1105|55000
wr_7 1107|52000 1107|55000
wr_7 1114|52000 1114|55000
wr_7 1122|52000 1122|55000
wr_7 1186|52000 1186|55000
wr_7 1194|52000 1194|55000
wr_7 1202|52000 1202|55000
wr_7 1203|52000 1203|55000
wr_7 1207|52000 1207|55000
wr_7 1255|52000 1255|55000
wr_7 1281|52000 1281|55000
wr_7 1309|52000 1309|55000
wr_7 1318|52000 1318|55000
wr_7 1349|52000 1349|55000
wr_7 1361|52000 1361|55000
wr_7 1388|52000 1388|55000
....
....
....


'g4_write_01' 이라는 테이블의 'wr_7' 칼럼에 위와 같이 기존필드값이 들어가 있고
이것을 '변경필드값'으로 수정하려고 합니다.

위를 보시면 아시겠지만, 실제 수정되는 값은 52000 ---> 55000 으로 변경하는것인데
한개씩 수정하려면 아래처럼 하면 되겠지만....

<?
// 접속자 도구 추가
$host = 'localhost'; //호스트
$user = ''; //계정명
$password = ''; //패쓰워드
$db = ''; //데이타베이스명

$con = mysql_connect($host, $user ,$password);
mysql_select_db($db,$con);

//-- 실행테이블 및 칼럼
$tbl_name = 'g4_write_01'; // 테이블명
$col_name = 'wr_7'; // column

//-- 필드값 변경 (한개씩...-_- ;; )
$sq1 = " update $tbl_name set $col_name = '1031|55000' where $col_name = '1031|52000' ";
mysql_query($sq1);

?>


값이 한두개가 아니다 보니, 위처럼 일일히 작업하는 무식한 방법을 쓰려면 한 세월 걸릴듯 합니다
좀더 간단한 방법으로 일괄변경할수 있는 방법이 없을런지요??

도움글을 좀 부탁드려 봅니다

댓글 작성

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

로그인하기

댓글 4개

지금 하신 방법은 결국 하나씩 변경되는 것 같은데요 뒤 부분만을 변경하실거면...wr_1 을 배열로....설정해서....수정하시면 한번에 가능합니다.

$wr_1_ARR = explode("|",$row[wr_1])

$row[wr_1] <<-- 이것은 하실줄 안다고...생각하고 넘어갑니다.

$sq1 = " update g4_write_01 set wr_1 = '$wr_1_ARR[0]|55000' ";
mysql_query($sq1);

이렇게 처리하면 한방에 될것입니다.

참고로 저도 초보이니..하실때는 꼭 DB백업을 하시고..해주세요..ㅎㅎ
댓글 감사합니다..근데...

$row[wr_1] <<-- 이것은 하실줄 안다고...생각하고 넘어갑니다. <--- 이걸 몰겠습니다. 또.. wr_1 이 어디서 나온건가요?? -_- ;;


그럼 아래처럼 하면 ... ?

$sql = " select wr_id,wr_7 from g4_write_01 order by wr_id asc ";
$result = mysql_query($sql);

for($i=0;$i<$row=mysql_fetch_array($result);$i++) {
$temp = explode("|",$row[wr_7]);
$sql = " update g4_write_01 set wr_7 = '$temp[0]|55000' where wr_id = '$row[wr_id]' ";
mysql_query($sql);
}
저렇게 날리시면 위험합니다 ; 다날라갑니다.

where 값이 없습니다.
$tbl_name = 'g4_write_thule_10'; // 실행할 테이블명
$col_name = 'wr_7'; // 수정칼럼

//-- 필드값 채우기
$sql = " UPDATE $tbl_name SET $col_name = REPLACE($col_name, '52000', '55000') ";
mysql_query($sq1);


.............. 위처럼 해도 먹히지가 않는군요 -_- ;;

게시글 목록

번호 제목
284508
284499
284492
284490
284484
284481
284478
284476
284474
284472
284470
284458
284457
284454
284453
284447
284446
284444
284441
284440