본문 바로가기
MySql

MySQL 존재하는 경우 PHP MYSQL UPDATE 또는 그렇지 않은 경우 INSERT?

by 베이스 공부 2020. 10. 1.
반응형

이것이 원격으로 정확한지 모르겠습니다. 필드가 현재 존재하는 경우 데이터베이스를 업데이트하거나 그렇지 않은 경우 삽입하려는 클래스가 있습니다. 복잡한 점은 3 개의 테이블 (set_colors, school_art, baseimage)을 조인하고 있다는 것입니다.

어떤 도움이라도 정말 좋을 것입니다.

내가 가진 것은 다음과 같습니다.

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 (school_art_id, baseimage_id, sub_folder, layer)
        SELECT school_art.id, baseimage.id, baseimage.sub_folder, baseimage.layer
        FROM school_art 
        JOIN baseimage ON baseimage.base_folder = school_art.series_code 
        WHERE baseimage.image_type = 'B' ORDER BY school_art.id 

    ELSE

     INSERT INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
        SELECT school_art.id, baseimage.id, baseimage.sub_folder, baseimage.layer
        FROM school_art 
        JOIN baseimage ON baseimage.base_folder = school_art.series_code 
        WHERE baseimage.image_type = 'B' ORDER BY school_art.id 
        ");

    return $result_array;
}

 

해결 방법

 

다음 구문을 찾고 있다고 생각합니다.

INSERT INTO <table> (field1, field2, field3, ...) 
VALUES ('value1', 'value2','value3', ...)
ON DUPLICATE KEY UPDATE
field1='value1', field2='value2', field3='value3', ...

 

참조 페이지 https://stackoverflow.com/questions/6853190

 

 

반응형

댓글