채택완료

update 쿼리문좀 봐주세요 ㅠㅠ

2021-08-09 (월) 07:34:20 2,635

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

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

1 사과

3 배

4 복숭아

5 

6 멜론

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

1 사과,바나나

3 배,자두

4 복숭아,망고

5 수박

6 멜론,체리

사용한 update 쿼리문 입니다

Copy
$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개 / 댓글 2개

채택된 답변
+20 포인트
2021-08-09 (월) 07:45:03

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)

이렇게 해 보세요.

답변에 대한 댓글 1개

2021-08-23 (월) 08:19:41
엑스엠엘님 감사합니다 제가 오늘 그누에 접속을해서 다시한번 멈춰났던거 도전해보겠습니다..^^

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

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

로 해보세요

답변에 대한 댓글 1개

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

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