테스트 사이트 - 개발 중인 베타 버전입니다

mysql 질문 update 문 조건 채택완료

virginia 5년 전 조회 2,069

a           b

10         0         

10         0

10         0

11         0

12         0

13         0

 

a 항목에 10인 값중 위에서 2번째까지만 b항목에 점수를 주려고 합니다.

update g5_shop_cart set a = a +1 group by a having a=10 limit 0, 1

update g5_shop_cart set a = a +1 group by a having a=10 limit 1, 2

로 하니 안되더군요.

for문으로 돌려야 하나요? 방법이 있을까요?

 

고수님들의 의견 부탁드려요.

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

답변 2개

채택된 답변
+20 포인트
B
5년 전

"a 항목에 10인 값중 위에서 2번째까지만 b항목에 점수를 주려고 합니다."라고 적어놓고

예문은 "update g5_shop_cart set a = a +1 group by a having a=10 limit 0, 1"인데

a 항목이 10인 값 중, 2개만 b의 값을 1 증가시켜주는 것이 목적인가요?

질문의 데이터만으로는 대상이 명확하지 않고,

문제[*]가 있긴 하지만 어쨌거나 아래처럼 업데이트 가능하긴 합니다.

 

UPDATE g5_shop_cart SET b=b+1 WHERE a=10 LIMIT 2

 

* Note: Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.

로그인 후 평가할 수 있습니다

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

5년 전

update g5_shop_cart set a = a +1

where id in

   (select id from g5_shop_cart group by a having a=10 limit 0,1)

 

이런식으로는 안되던가요?

직접 해본건 아닙니다. ^^

로그인 후 평가할 수 있습니다

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

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

로그인