2013-12-09 58 views
2

我想运行一个INSERT查询,基于SELECT,与“ON DUPLICATE KEY UPDATE”语句。 SELECT查询工作正常,如果我要“手动”输入结果数据,则会导致重复密钥问题。到现在为止还挺好。但是,下面的查询似乎没有像我预期的那样更新“et_report_ymd.quotes”中的值。INSERT SELECT与ON DUPLICATE KEY UPDATE

INSERT IGNORE INTO et_report_ymd 
SELECT 
    NULL, 
    t.year AS year, 
    t.month AS month, 
    t.day AS day, 
    SUM(t.quotes) AS quotes 

FROM source_table AS t 

GROUP BY t.year, t.month, t.day 

ON DUPLICATE KEY UPDATE 
    et_report_ymd.quotes = quotes 

所有帮助是值得欢迎...

回答

2

而就当你决定寻求帮助,你拿出解决方案,一如既往。

INSERT IGNORE INTO et_report_ymd 
SELECT 
    NULL, 
    t.year AS year, 
    t.month AS month, 
    t.day AS day, 
    SUM(t.quotes) AS quotes 

FROM source_table AS t 

GROUP BY t.year, t.month, t.day 

ON DUPLICATE KEY UPDATE 
et_report_ymd.quotes = VALUES(quotes) 

请注意查询结尾处的“VALUES(引号)”部分,而不是“引号”。

相关问题