반응형
이것이 원격으로 정확한지 모르겠습니다. 필드가 현재 존재하는 경우 데이터베이스를 업데이트하거나 그렇지 않은 경우 삽입하려는 클래스가 있습니다. 복잡한 점은 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
반응형
'MySql' 카테고리의 다른 글
MySQL NULL values in where clause (0) | 2020.10.01 |
---|---|
MySQL mysql 쿼리로 한 열을 다른 열로 복사 (0) | 2020.10.01 |
MySQL SQL 인젝션과 XSS를 방지하는 PHP 기능 (0) | 2020.10.01 |
MySQL 데이터베이스에 아랍어로 데이터 저장 (0) | 2020.10.01 |
MySQL에서 테이블 이름의 최대 길이 (0) | 2020.10.01 |
댓글