在DUPLICATE KEY UPDATE - 需要帮助

时间:2014-01-22 14:43:17

标签: mysql sql mysql-5.5

我的问题是我有一个插入更新重复键上的查询,它就像下面那样:

INSERT INTO TABLE 
    (COL1, COL2,  COL3 , ETC...) 
SELECT 
    COLA1, COLA2,  COUNT(1) , ETC... 
FROM TABLE2 
WHERE 'CONDITION' 
GROUP BY COL1, COL2, COL3 
    ON DUPLICATE KEY UPDATE COL1=VALUES(COLA1), COL3=COUNT(1)

此查询返回错误:常规错误:1111无效使用组函数SQL

COL1, COD2, COL3 ARE COMPLEX KEY.

1 个答案:

答案 0 :(得分:1)

试试这个:

INSERT INTO TABLE(COL1, COL2, COL3, ETC...) 
    SELECT COLA1, COLA2, COUNT(1), ETC... 
    FROM TABLE2 
    WHERE 'CONDITION' 
    GROUP BY COL1, COL2, COL3 
    ON DUPLICATE KEY UPDATE COL1 = VALUES(COL1), COL3 = VALUES(COL3);

也就是说,请参考values1语句中的名称,而不是select语句中的表达式。