my sql 인서트 질문입니다!
본문
wr_3에다가 숫자를 1씩증가하며 입력하고싶은데..
update g5_write_pictorial set wr_3 = '';
로 초기화 하고
update g5_write_pictorial set wr_3 = wr_3 + 1 WHERE ca_name ='청년기' ORDER BY wr_id ASC;
이렇게 하면 1만 뜨드라구요 ㅠㅠㅠ
방법이 있을까요 ㅠ?
답변 6
매번 초기화 되면
항상 1이겠죠
초기화하지마시고 밑에것만 쓰시면 계속 1씩 올라갑니다.
지금 순서가
wr_3을 0으로 초기화한다.
그리고 1을 업데이트한다.
그러니 수천번을 실행해도 wr_3은 1이다.
(로직)
현재까지의 '청년기' 분류 데이터에서 가장 최근의 wr_3 값 추출 or Max(wr_3) 값 추출
=> 추출된 값 + 1 을 새로 입력하는 글의 wr_3 에 저장
/skin/board/[스킨]/write_update.skin.php
$sql = "
select max(wr_3) as max_wr_3
from g5_write_pictorial
where ca_name = '청년기'
";
$row = sql_fetch($sql);
$max_wr_3 = $row['max_wr_3'];
$new_wr_3 = $max_wr_3 + 1;
$sql = "
update g5_write_pictorial
set wr_3 = {$new_wr_3}
where wr_id = {$wr_id}
";
$result = sql_query($sql);
INSERT ON DUPLICATE 쓰고요.
wr_3 = (wr_3 + 1)로 해보세요.
update g5_write_pictorial set wr_3 = wr_3 + 1 WHERE ca_name ='청년기' ORDER BY wr_id ASC;
업데이트 구문에
order by .. 이하는 오류입니다.
order by wr_id asc 를 제거 하시고
해보세요