>데이터 베이스 >MySQL 튜토리얼 >INSERT ... ON DUPLICATE KEY UPDATE를 사용하여 조건부로 데이터를 업데이트하는 방법은 무엇입니까?

INSERT ... ON DUPLICATE KEY UPDATE를 사용하여 조건부로 데이터를 업데이트하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-29 17:07:02646검색

How to Update Data Conditionally with INSERT ... ON DUPLICATE KEY UPDATE?

조건부 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.