> 데이터 베이스 > MySQL 튜토리얼 > PHP에서 MySQL을 삽입하는 동안 중복 항목을 효율적으로 처리하는 방법은 무엇입니까?

PHP에서 MySQL을 삽입하는 동안 중복 항목을 효율적으로 처리하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-01 08:59:14
원래의
869명이 탐색했습니다.

How to Efficiently Handle Duplicate Entries During MySQL Inserts in PHP?

MySQL - 중복 항목 삽입 무시

시나리오: 오류 없이 고유 레코드 삽입

PHP에서 데이터베이스에 레코드 배치를 삽입할 때 고유한 필드인 경우 중복 입력 오류를 무시하는 것이 바람직합니다. 대신 중단 없이 새 레코드만 삽입되도록 하려고 합니다.

SELECT-INSERT 확인 방지

삽입하기 전에 기존 항목을 확인하기 위해 SELECT 쿼리를 수행하는 것은 효율적인 접근 방식이 아닙니다. MySQL의 내장 기능을 사용하는 대체 방법은 다음과 같습니다.

  1. INSERT... IGNORE:

    이 구문을 사용하면 레코드를 삽입하고 중복이 이미 있으면 무시하십시오. 오류가 발생하지 않습니다.

    INSERT IGNORE INTO tbl (field1, field2, ...) VALUES (...);
    로그인 후 복사
  2. REPLACE INTO:

    이 구문은 기본 키인 경우 기존 레코드를 새 레코드로 덮어씁니다. 성냥. 기본 키가 고유하지 않으면 오류가 발생합니다.

    REPLACE INTO tbl (field1, field2, ...) VALUES (...);
    로그인 후 복사
  3. INSERT... ON DUPLICATE KEY UPDATE:

    이것은 구문은 새 레코드를 삽입하거나 중복된 기본 키가 있는 경우 업데이트를 수행합니다. found.

    INSERT INTO tbl (field1, field2, ...) VALUES (...) ON DUPLICATE KEY UPDATE field2 = NEW.field2;
    로그인 후 복사

'id' 및 'value' 열이 있고 처음에 'id' =인 레코드가 포함된 'tbl'이라는 테이블을 가정합니다. 1 및 '값' = 1:

  • REPLACE INTO:

    REPLACE INTO tbl (id, value) VALUES (1, 50);
    로그인 후 복사

    결과: 기존 레코드를 '값' = 50으로 덮어씁니다.

  • 삽입 무시:

    INSERT IGNORE INTO tbl (id, value) VALUES (1, 10);
    로그인 후 복사

    결과: 'id' 1이 이미 존재하므로 중복 항목을 무시합니다.

  • INSERT... ON DUPLICATE KEY 업데이트:

    INSERT INTO tbl (id, value) VALUES (1, 200) ON DUPLICATE KEY UPDATE value = 200;
    로그인 후 복사

    결과: 기존 레코드를 업데이트합니다. 'id' 1이 이미 존재하므로 'value' = 200입니다.

위 내용은 PHP에서 MySQL을 삽입하는 동안 중복 항목을 효율적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿