update 쿼리문좀 봐주세요 ㅠㅠ

update 쿼리문좀 봐주세요 ㅠㅠ

QA

update 쿼리문좀 봐주세요 ㅠㅠ

본문

안녕하세요 도저히 답을 못찾아서 다시 여쭈어봅니다 ㅠㅠ

 

g5_write_test 라는 테이블을 만들고 임시로 값을 넣었습니다 wr_id 2번은 지워진 상태입니다

 

1 사과

3 배

4 복숭아

6 멜론

 

update 쿼리문을 돌려서 여분필드에 아래처럼 추가할려고 합니다

 

1 사과,바나나

3 배,자두

4 복숭아,망고

5 수박

6 멜론,체리

 

사용한 update 쿼리문 입니다

 


$text = array('바나나','자두','망고','수박','체리');
for ($i = 0;$i < count($text); $i++){    
    $sql = " update g5_write_test
                set wr_1 = 
                case 
                    when wr_1 = '' then concat( wr_1, '". $text[$i] ."') 
                else 
                    concat( wr_1, ',". $text[$i] ."')
                END
                where wr_id =  '" . ( $i + 1 ) . "'
            ";   
   $result=mysqli_query($conn,$sql);
}

 

그런데 적용을하면 이렇게 아래처럼 적용이 됩니다..

 

1 사과,바나나

3 배,망고

4 복숭아,수박

5 체리

6 멜론

 

그래서 엑스엠엘님이 알려주신방법으로 wr_id 키값을 UNIQUE 바꿔서 


on duplicate key update 도 해봐도 안됩니다..ㅠㅠ

 

이거는 방법이 없는건가요?

이 질문에 댓글 쓰기 :

답변 3

tt.id는 unique key입니다.

 

MariaDB []> select * from tt;
+----+--------+
| id | ss     |
+----+--------+
|  1 | 사과   |
+----+--------+
1 row in set (0.00 sec)

MariaDB []> insert into tt values ( 1, 'apple') on duplicate key update  ss=concat( ss, ',', values(ss));
Query OK, 2 rows affected (0.00 sec)

MariaDB []> select * from tt;
+----+--------------+
| id | ss           |
+----+--------------+
|  1 | 사과,apple   |
+----+--------------+
1 row in set (0.00 sec)

 

이렇게 해 보세요.


<?php
 
$text = array( '1'=>'바나나',
             '3' => '자두',
            '4' => '망고',
           '5'=>'수박',
           '6' =>'체리'
         );

foreach ($text as $key => $value){    
    $sql = " update g5_write_test
                set wr_1 = 
                case 
                    when wr_1 = '' then concat( wr_1, '". $value ."') 
                else 
                    concat( wr_1, ',". $value ."')
                END
                where wr_id =  '" . ( $key ) . "'
            ";   
   $result=mysqli_query($conn,$sql);
}

로 해보세요

플래토님 안녕하세요 오늘 그누에 접속해서 이제 댓글을 확인했습니다
엑스엠엘님이 너무 친절하게 질문에 계속 댓글을 달아주셔서 채택을 드렸습니다
플래토님도 채택해드리고싶은데 한분밖에 못해서 죄송합니다..ㅜㅜ

답변을 작성하시기 전에 로그인 해주세요.
전체 125,873 | RSS
QA 내용 검색

회원로그인

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