조건부 INSERT ... ON DUPLICATE KEY UPDATE
INSERT ... ON DUPLICATE KEY UPDATE를 사용하는 경우 적용이 필요할 수 있습니다. 특정 조건이 충족되는 경우에만 조건부로 업데이트됩니다. 단, UPDATE 절에서 WHERE 사용은 지원되지 않습니다.
IF()를 사용한 해결 방법
이러한 제한을 극복하려면 IF( ) 함수를 사용하여 조건을 평가하고 업데이트 수행 여부를 결정합니다. 다음 구문은 이 해결 방법을 보여줍니다.
INSERT INTO table_name (column1, column2) VALUES (value1, value2) ON DUPLICATE KEY UPDATE column2 = IF(condition, new_value, old_value);
예:
다음 시나리오를 고려하십시오.
INSERT INTO daily_events (created_on, last_event_id, last_event_created_at) VALUES ('2010-01-19', 23, '2010-01-19 10:23:11') ON DUPLICATE KEY UPDATE last_event_id = IF(last_event_created_at < VALUES(last_event_created_at), VALUES(last_event_id), last_event_id);
이 예에서 업데이트는 last_event_id는 들어오는 행의 last_event_created_at 값이 데이터베이스의 기존 값보다 늦은 경우에만 발생합니다. 이렇게 하면 가장 최근의 이벤트가 기록됩니다.
위 내용은 INSERT ... ON DUPLICATE KEY UPDATE를 사용하여 조건부로 데이터를 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!