채택완료

my sql 인서트 질문입니다!

2019-10-28 (월) 17:13:38 4,619

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개

채택된 답변
+20 포인트

매번 초기화 되면

항상 1이겠죠

답변에 대한 댓글 1개

2019-10-28 (월) 17:27:36
네 ㅠㅠ 그래서 초기화 구문 빼고 입력했는데......
그래도 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 를 제거 하시고

해보세요

2019-10-28 (월) 17:28:09

INSERT ON DUPLICATE 쓰고요.

wr_3 = (wr_3 + 1)로 해보세요.

2019-10-28 (월) 17:27:21

(로직)

현재까지의 '청년기' 분류 데이터에서 가장 최근의 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);

지금 순서가

wr_3을 0으로 초기화한다.

그리고 1을 업데이트한다.

그러니 수천번을 실행해도 wr_3은 1이다.

초기화하지마시고 밑에것만 쓰시면 계속 1씩 올라갑니다.

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