update 쿼리문좀 봐주세요 ㅠㅠ
본문
안녕하세요 도저히 답을 못찾아서 다시 여쭈어봅니다 ㅠㅠ
g5_write_test 라는 테이블을 만들고 임시로 값을 넣었습니다 wr_id 2번은 지워진 상태입니다
1 사과
3 배
4 복숭아
5
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);
}
로 해보세요
발렌슈테인님 저한테 쪽지 한번 주시길 부탁드려도 될까요?
쪽지가 안되어서 여기 질문에 관계없는곳에 남겨서 죄송합니다.