2013-02-18 3 views
0

나는 다섯 개의 열이있는 테이블을 가지고 있습니다 : uid, lead_id, form_id, field_number, value.업데이트 또는 다른 행 삽입, 복수 행

업데이트하고 싶습니다. valueWHERElead_id, form_id, and field_number가 있습니다. 내 스크립트에서는 쿼리를 수행하지 않고 ID를 모르지만 lead_id, form_id, field_number TOGETHER도 unique입니다. 경우에 따라이 행은 NOT exist이며 업데이트되지 않고 삽입되어야합니다.

약 30 개의 행, value 열이 있기 때문에 더 복잡해집니다. 업데이트/삽입을 원하고 오히려 한 번의 쿼리에서이 작업을 수행합니다. 여기

UPDATE 는 오늘을 사용하고 있지만,이 (명백하게) 존재하지 않는 행을 업데이트하지 무슨 본질적이다. 따라서 데이터가 처음에는 채워지지 않았지만 업데이트에 추가 된 경우이 데이터는 데이터베이스에 추가되지 않습니다. 여기

내가 현재 가지고있는 작업은 다음과 같습니다

업데이트 someTableName SET 값을 = field_number 언제 field_number_value_1 THEN 'newValue1' 언제 field_number_value_2 THEN 'newValue2' 언제 field_number_value_3 THEN 'newValue3' END WHERE form_id = 3 AND , field_number_value_2, field_number_value_3 "field_number_value_1 IN lead_id = 37 AND field_number,

+0

나는 문제가 무엇인지 혼란 스럽습니다. 테이블에 고유 한 키가 있습니까? –

+0

좋아, 나는 현재 내가 사용하고있는 게시물을 업데이트했다. – user2081605

답변

1
INSERT INTO table (uid, lead_id, form_id, field_number, value) 
VALUES (1, 1, 1, 1, 0) 
ON DUPLICATE KEY UPDATE value = value + 1 ; 

더 많은 정보 : ON DUPLICATE KEY UPDATE

+0

데이터베이스를 쿼리하지 않고 UID가 없기 때문에이 작업을 수행 할 필요가 없습니다. 여러 번 업데이트를 한 번에 수행해야합니다. – user2081605