2012-11-12 75 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

相关问题