我們有2臺這樣的:檢查MySQL的,如果行不存在,然後插入(沒有唯一鍵)
1:帖子
ID Title Hits
1 Title 1 4
2 Title 2 7
3 Title 3 19
4 Title 4 8
2:點擊
ID PostID IP
1 2 5.9.9.45
2 3 5.9.9.45
3 2 72.5.4.9
4 4 5.9.9.45
現在我們需要一個查詢來檢查'hits'表中是否存在具有特定PostID和IP地址的行,插入一個新行並增加post.Hits一個單位(這是一個計數器)。
我們測試此查詢:
INSERT INTO table (field) VALUES (value) ON DUPLICATE KEY UPDATE field=value
但正如你看到的,IP和帖子ID不能是唯一的關鍵。他們可以爲不同的用戶複製。 如果沒有PostID + IP,有什麼方法可以在一個查詢中插入和更新嗎?
挑戰是這樣的: 1-當用戶打開帖子頁面時,增加該帖子的打擊次數。2-如果該用戶打開另一個帖子,其命中增加。 3如果該用戶第二次打開帖子,不要這麼做! –
然後你就像@ gordon-linoff所說的那樣創建一個唯一索引。 –
用插入示例更新了我的答案。 –