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

로 해보세요

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

발렌슈테인님 저한테 쪽지 한번 주시길 부탁드려도 될까요?
쪽지가 안되어서 여기 질문에 관계없는곳에 남겨서 죄송합니다.

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

회원로그인

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