2012-11-12 79 views
3
INSERT INTO GameScoreTotal (
    `GameName` 
    , `OverallScore` 
    , `GraphicsScore` 
    , `StoryScore` 
    , `GameplayScore` 
    , `TimeScore` 
    ) 
VALUES (
    'HomeFront' 
    , '1' 
    , '1' 
    , '1' 
    , '1' 
    , '5' 
    ) 
WHERE GameName = 'HomeFront' 
    ON DUPLICATE KEY 

UPDATE OverallScoreTotal = OverallScoreTotal + '1' 
    , GraphicsTotal = GraphicsTotal + '1' 
    , StoryTotal = StoryTotal + '1' 
    , GameplayTotal = GameplayTotal + '1' 
    , TimeTotal = TimeTotal + '1' 
    , RatingCount = RatingCount + 1; 

我試圖更新GameScoreTotal如果我們有其他地方有插入。有任何想法嗎?MySQL更新如果存在行,否則插入

回答

6
  • 您需要在GameName名稱來定義鍵,(唯一或主鍵應該做
  • 從插入語句

查詢中刪除WHERE條款,

INSERT INTO GameScoreTotal (`GameName` , `OverallScore` , `GraphicsScore` 
          , `StoryScore` , `GameplayScore` , `TimeScore`) 
VALUES ('HomeFront' , 1 , 1 , 1 , 1 , 5) 
    ON DUPLICATE KEY 
UPDATE OverallScoreTotal = OverallScoreTotal + 1 
    , GraphicsTotal = GraphicsTotal + 1 
    , StoryTotal = StoryTotal + 1 
    , GameplayTotal = GameplayTotal + 1 
    , TimeTotal = TimeTotal + 1 
    , RatingCount = RatingCount + 1; 

SOURCE

0

查找REPLACE INTO而不是INSERT INTO

相關問題