도움요청 .. mysql 테이블의 여유필드값의 수정 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

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

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

본문

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);

?>


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

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

댓글 전체

지금 하신 방법은 결국 하나씩 변경되는 것 같은데요 뒤 부분만을 변경하실거면...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);
}
$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);


.............. 위처럼 해도 먹히지가 않는군요 -_- ;;
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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