我不知道这是否真的正确。我有一个班级,如果这些字段当前存在,我想在其中更新数据库,如果不存在则要插入。复杂的是,我正在联接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', ...
问题内容: 当我要求模型管理器获取对象时,如果没有匹配的对象,它将引发。 相反的,我怎么能有可以代替? 问题答案: 没有“内置”方式可以做到这一点。Django每次都会引发DoesNotExist异常。在python中处理此问题的惯用方式是将其包装在try catch中: 我所做的是将models.Manager子类化,创建类似于上面的代码,并将该经理用于我的模型。这样,您可以编写:。
问题内容: 如果两个值都不存在,如何推入数组?这是我的数组: 如果我尝试使用或再次将其推入数组,我什么都不希望发生…但是如果这两个都不存在,那么我希望它 我怎样才能做到这一点? 问题答案: 您可以使用自定义方法扩展Array原型:
问题内容: 有没有一种简单的方法可以使用一个MySQL查询对不存在的行或存在的行进行简单的处理? 问题答案: 是的。例如:
问题内容: 我有下表: 如果给定的ID不存在,我想插入具有默认Val的ID。但是,如果它已经存在,我想增加Val的值。 我有以下代码: 并且它可以工作,但是我想用一个SQL语句来完成。我可以吗? 编辑 : 从@ Xikinho90的答案,我的最终代码是 问题答案: 您可以使用插入或替换。 我认为这可以解决问题 您只需要用输入的ID替换数字 谢谢奇科
问题内容: 有没有一种简单的方法可以使用一个MySQL查询对不存在的行或存在的行进行简单的处理? 问题答案: 使用。例如:
错误为: Msg 156,Level 15,State 1,Procedure EmailsRecebidosInsert,Line 11 关键字“where”附近的语法不正确。