我不知道这是不是一点都不正确。我有一个类,如果字段当前存在,我希望在其中更新数据库,如果字段不存在,则插入字段。复杂的是,我正在连接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;
}
发布于 2011-07-28 09:28:43
有两个选择:
MySQL Manual :: INSERT INTO ... ON DUPLICATE KEY UPDATE Syntax
或
MySQL Manual :: REPLACE INTO Syntax
两者都允许您在一个查询中执行insert-if-not-exists或update。
https://stackoverflow.com/questions/6853190
复制相似问题