PHP MYSQL UPDATE(존재하는 경우) 또는 INSERT(존재하지 않는 경우)?
나는 이것이 조금이라도 정확한지 모르겠다.현재 필드가 있으면 데이터베이스를 업데이트하고 필드가 없으면 삽입할 클래스가 있습니다.복잡한 것은 3개의 테이블(set_colors, school_art, base image)을 결합하고 있다는 것입니다.
어떤 도움이라도 주시면 정말 감사하겠습니다.
제가 가지고 있는 것은 다음과 같습니다.
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', ...
주의: 포함
ON DUPLICATE KEY UPDATE, 행당 affected-rows 값은 다음과 같습니다.1행을 새 행으로 삽입하면2기존 행이 갱신된 경우0기존 행이 현재 값으로 설정되어 있는 경우.
MySQL 문서:
두 가지 선택지가 있습니다.
MySQL 매뉴얼 :: INSERT IN...중복 키 업데이트 시 구문
또는
둘 다 하나의 쿼리에서 insert-if-not-exists-or-update를 수행할 수 있습니다.
언급URL : https://stackoverflow.com/questions/6853190/php-mysql-update-if-exist-or-insert-if-not
'programing' 카테고리의 다른 글
| MySQL: 쿼리에서 열 이름 또는 별칭 가져오기 (0) | 2022.10.23 |
|---|---|
| Python에서 트리를 구현하려면 어떻게 해야 하나요? (0) | 2022.10.23 |
| MAX(Column value), MYSQL에서 다른 열로 파티션을 선택한 행은 어떻게 해야 합니다. (0) | 2022.10.23 |
| Vuetify 그리드를 사용하여 v-for 루프의 저장소 항목을 표시하는 방법 (0) | 2022.10.23 |
| Java 열거형에서 valueof() 및 toString()을 덮어씁니다. (0) | 2022.10.23 |