我的MySQL表有點問題。MySQL如何避免重複行
這裏是如何看我的db表:
如何避免重複行,我想在添加新的插件如果列「DOC」和「日期」有相同的價值觀只需更換呢?
我會很感激,如果有人能幫助我。提前致謝。
我的MySQL表有點問題。MySQL如何避免重複行
這裏是如何看我的db表:
如何避免重複行,我想在添加新的插件如果列「DOC」和「日期」有相同的價值觀只需更換呢?
我會很感激,如果有人能幫助我。提前致謝。
添加一個唯一索引的文檔和日期列,然後重複更新
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和日期都沒有鑰匙,你不想對他們的指數,我認爲唯一的辦法就是拉首先進行查詢,看看是否有一行存在與文檔和日期都等於您的新的文檔和日期值。如果行存在,則更新它 - 如果不存在,則插入新行。
不是他所要求的__'if列'doc'和'date'具有相同的值'___他們不是密鑰 – RiggsFolly
我想如果我有'doc':528和'date':30/09/2015但是無法添加'doc':528和'date':30/09/2015(帶有diff。id),但我可以添加'doc':529和'date':30/09/2015或'doc ':528和'日期':29/09/2015。 – diank
如果您想要插入表中,並且表使用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')
你是什麼意思「只要更換它們」? –
如果'doc'和'date'列具有相同的值,則不需要執行任何操作。在該表中只有3列,唯一的是'id' – RiggsFolly
@RiggsFolly我在帖子中添加新圖片。我希望這會清除我的問題。 – diank