>데이터 베이스 >MySQL 튜토리얼 >존재를 기반으로 MySQL에서 레코드를 업데이트하거나 삽입하는 방법은 무엇입니까?

존재를 기반으로 MySQL에서 레코드를 업데이트하거나 삽입하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-14 14:14:02407검색

How to Update or Insert Records in MySQL Based on Existence?

PHP MySQL: 존재에 따른 레코드 업데이트 또는 삽입

MySQL에서는 기존 레코드를 업데이트하거나 새 레코드를 삽입해야 할 수도 있습니다. 특정 필드가 데이터베이스에 이미 존재하는지 여부에 따라 결정됩니다. 이 작업은 IF EXISTS 및 ELSE 문의 조합을 사용하여 효율적으로 처리할 수 있습니다.

레코드가 있으면 업데이트하고, 없으면 삽입하려면 다음 구문을 고려하세요.

IF EXISTS(SELECT * FROM table_name WHERE field = 'value')
  UPDATE table_name SET field1 = 'value1', field2 = 'value2', ...
ELSE
  INSERT INTO table_name (field1, field2, ...) VALUES ('value1', 'value2', ...)

특정 시나리오에서 'school_art' 및 'baseimage' 테이블의 해당 레코드 존재를 기반으로 'set_colors' 테이블의 레코드를 업데이트하거나 삽입하려면 다음과 같이 코드를 수정할 수 있습니다. 다음:

public function set_layer_colors($value) {
    global $db;

    $result_array = mysql_query("
    IF EXISTS(SELECT * FROM set_colors WHERE school_art_id = '{$value}')
      UPDATE set_colors SET school_art_id = '{$value}', baseimage_id = '{$baseimage_id}', sub_folder = '{$sub_folder}', layer = '{$layer}'
    ELSE
      INSERT INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
      VALUES ('{$value}', '{$baseimage_id}', '{$sub_folder}', '{$layer}')
    ");

    return $result_array;
}

이 코드는 'school_art_id'가 제공된 값과 일치하는 'set_colors' 테이블에 레코드가 있는지 확인합니다. 레코드가 있으면 지정된 필드를 업데이트합니다. 그렇지 않으면 테이블에 새 레코드가 삽입됩니다.

위 내용은 존재를 기반으로 MySQL에서 레코드를 업데이트하거나 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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