update 쿼리문좀 봐주세요 ㅠㅠ

update 쿼리문좀 봐주세요 ㅠㅠ

QA

update 쿼리문좀 봐주세요 ㅠㅠ

답변 3

본문

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

 

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

로 해보세요

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #sql ×
전체 728
© SIRSOFT
현재 페이지 제일 처음으로