2013-06-03 69 views
0
INSERT INTO statistics(classify, country, ads, year) 
VALUES (:classify, :country, 1, :year) 
ON DUPLICATE KEY UPDATE ads = ads + 1 

我有一個查詢使用ON DUPLICATE KEY和我設置​​到classifycountryyear對重複密鑰更新時,3列的值匹配

不過,我需要UPDATE只有當classify && country && year所有3個都來自用戶相同的值輸入。

UPDATE在同一行,當值的一個是匹配

之成爲classify || country || year

這就是我需要

UPDATE statistics SET ads = ads + 1 
    WHERE classify='$classify' && country='$country' && year='$year' 

什麼辦法可以解決這個問題呢?

+1

'ALTER TABLE統計信息添加約束tb_uq UNIQUE(分類,地區,年份)'[從你的**前面的問題**](HTTP:// stackoverflow.com/questions/16889176/mysql-on-duplicate-key-update-didnt-update) –

+0

我有嘗試,但它沒有工作 – user2178521

+0

不,它應該。請稍等,我會創作小提琴。 –

回答

0

創建一個唯一約束(分類,國家,年)

+0

這不是一個索引本身,而是一個約束;) – str

+3

這應該是一個評論... – matzone

+0

@str我的錯,謝謝 – Zoozy