2017-10-22 2 views
0

나는 중복 삽입을 시도 할 때 어떻게 열 값을 증가시킬 관한 질문을 본 적이 :MySQL : 1 이외의 값에 대해 중복 키의 필드를 어떻게 업데이트합니까?

insert into table (col) values (val) on duplicate update countcol=countcol+1; 

을 그러나 당신은 어떻게 변수 값으로 countcol를 증가합니까? 예를 들어

:

insert into table (col, count) values (val1, val2) on duplicate update count=count+val2? 

나는 학생들이 읽은 책의 수를 추적하고있어 내 테이블에 포함 된 것으로 가정 해 보겠습니다 :

Mark | 5 

마크 2 더 많은 책을 읽어보고, 그래서 내가 원하는 :

Mark | 7 (기존 합계에 2를 더함)

(프로그램에 신규) 제리는이 책

를 읽고 곳 경우를 처리 할

삽입 ->Jerry | 2

어쩌면 같은;

insert into readers (student, count)values ('Mark',3 as read) 
on duplicate key update count=count+read; 

mySQL에 제출 된 값에 액세스 할 수있는 실제 이름/참조가 있습니까? 이것은 단일 진술로 수행 될 수 있습니까? 또는 레코드가 있는지 먼저 테스트 한 다음 결과에 따라 삽입/업데이트해야합니까?

+0

'중복 키'는 기본 키 또는 고유 키에서만 작동합니다. – tobiv

답변

0

사용 values() :

insert into table (col, count) 
    values (val1, val2) 
    on duplicate update count = count + values(count); 

values()이 값을 참조는 insert에 전달된다.

+0

그게 내가 찾고 있던거야! 감사! –

관련 문제