我看到以下(使用VALUES选项):使用SET选项可以使用ON DUPLICATE KEY UPDATE和INSERT查询吗?
$query = "INSERT INTO $table (column-1, column-2, column-3) VALUES ('value-1', 'value-2', 'value-3') ON DUPLICATE KEY UPDATE SET column1 = value1, column2 = value2, column3 = value3, ID=LAST_INSERT_ID(ID)";
...但我想不出如何对重复密钥更新添加到什么我使用:
$query = "INSERT INTO $table SET
column-1 ='value-1',
column-2 ='value-2',
column-3 ='value-3'
";
如:,伪码
$query = "INSERT INTO $table SET
column-1 ='value-1',
column-2 ='value-2',
column-3 ='value-3'
ON DUPLICATE KEY UPDATE SET
column1 = value1,
column2 = value2,
column3 = value3,
$id=LAST_INSERT_ID(id)";
$my_id = mysql_insert_id();
";
我会觉得后者更容易阅读。希望澄清,没有在手册中找到一个例子。
欢呼
谢谢凯文。我的ID列是主键,具有唯一索引。我相信我理解ON DUPLICATE KEY是如何工作的,但是我的问题是将它添加到不同的INSERT语法中,一个使用SET而不是VALUES。如果可行,我希望看到该语法的一个例子。 – shecky
只是为了澄清:我想使用ON DUPLICATE KEY UPDATE来防止在刷新时添加模糊,尽管我使用标题将用户重定向到结果页面,但我无法阻止用户返回并重新提交。 。所以是的,我想我会更新所有字段,如果ID存在 – shecky
我修改了示例以使用您问的格式,至少我想我是这样做的! –