答案 0 :(得分:2)
为doc和date列添加唯一索引,然后在重复更新
上使用INSERT INTO mytable (id, doc, date)
values ('id','doc','date')
on duplicate key update date = 'date'
或任何你需要的东西。您可以指定多个列,例如......
on duplicate key update date = 'date, doc = 'doc', etc...
修改强>
如果doc和date不是键,并且你不想要它们的索引,我认为唯一的方法是首先提取查询,看看是否存在一行,doc和date都等于你的新doc和date值。如果存在行,请更新它 - 如果它不存在,则插入新的。
答案 1 :(得分:0)
如果您想要插入表格并且表格使用AI作为主键,并且您没有明确地制作一个,那么您将始终制作副本。
" ON DUPLICATE KEY"功能不能扩展到" ON DUPLICATE FIELD"功能
菲尔说,唯一真正的解决方案就是改变代码。做类似的事情:
SELECT id
FROM mytable
WHERE doc = '$doc' AND
date = '$date'
然后,如果有任何结果,您可以使用显式ID进行插入,也可以忽略它。
INSERT INTO mytable (id, doc, date)
values ('$id','$doc','$date')