2013-02-17 56 views
0
cur.execute("""INSERT INTO football.match_events(type, player, time, game_id) VALUES (%s, %s, %s, %s)""", (etype, player_id, time, game_id)) 

我正在完成一個項目,我刮和處理足球文字評論。此INSERT語句是處理黃卡的一部分代碼的一部分。不幸的是,因爲這些評論是現場更新的,有時會有更正(儘管他們沒有更正,所以我不能過濾它們)。這導致我有兩行預訂,因爲它在評論中出現了兩次。Python MYSQL重複問題

我正在尋找一種簡單的方法讓SQL語句檢查查詢中的所有字段是否已經在表中一起存在於單個行中。我希望這是有道理的。

+0

嗨,我一定沒有解釋得很好。我開始認爲這不是在SQL中可以完成的事情。有一個主鍵,auto incr。但這些項目都不是唯一的。也就是說,可以有很多相同類型的match_events,可以有很多由同一個玩家執行的比賽事件,甚至可以同時執行多個比賽事件,它是我想要檢查的這4個變量的組合對於。也許這是我需要在python中執行的操作。 – user2073606 2013-02-17 18:27:44

+0

您可以創建一個包含這4列的唯一鍵。在重複密鑰更新上替換'/'可以在任何唯一密鑰上使用,而不僅僅是主密鑰。 – ESG 2013-02-17 18:40:44

+0

嗨,謝謝。我該怎麼做呢?你的意思是在我INSERT之前用python構造它,還是有辦法在phpmyadmin中設置這個表: – user2073606 2013-02-17 18:44:22

回答

0

你可以使用REPLACE INTO(假設MySQL)爲你工作。如果它不存在,它將插入該值,或者如果它存在,則替換現有的條目。

您還應該創建一個適當的鍵,或許基於您的示例中的game_id,以便可以更新現有條目。