我正在使用PHP,我需要在MySQL數據庫中插入新記錄,或者如果它存在,只需更新它。我讀了幾個答案,他們建議使用REPLACE
或INSERT...ON DUPLICATE KEY UPDATE
,但是如果我很好理解,這兩個選項意味着使用唯一字段或主鍵(這是唯一的)。在我的情況下,MySQL表有類似這樣的價值觀:替換MySQL中的現有記錄或創建沒有主鍵或唯一字段的新記錄
Timestamp | Query1 | Query2 | Result
--------------------------------------------------------
2012-10-13 08:15:27 | American | Men | here result
2012-10-13 08:15:23 | American | Men | result2
2012-10-13 08:15:27 | American | Women | other result
2012-10-13 08:15:27 | German | Men | here result
所以我不能有主鍵或因爲「QUERY1」,「QUERY2」和「結果」 univoque字段可以有相同的值(例如,我可以有幾條記錄包含「美國」(QUERY1)和「男人」(QUERY2)和不同的結果更多的領域
在PHP中的那一刻我使用:
INSERT INTO results (Timestamp, Query1, Query2, Result) VALUES ('$current_timestamp', '$nationality', '$gender', '')
剛剛追加的所有記錄並創建一個巨大的數據庫,但我想要實現的是添加一個新的記錄,只要是ent ire組合查詢1 &查詢2 &結果不存在。否則,我只想更新「時間戳」字段。
舉例來說,如果我的PHP腳本生成以下數據:
Timestamp | Query1 | Query2 | Result
2012-10-13 08:15:23 | American | Men | result2
和數據庫已經包含的「美國」 &「男人」 &「結果2」則只是場「時間戳」是這樣的精確組合更新。否則,如果該組合是不同的(例如,「美國」,「男性」,「result3)一個新的記錄添加到表中。
預先感謝您的幫助
沒有意識到時間戳應該更新 – davidkonrad