mysql - 关于重复 key 更新 - 需要帮助

标签 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.

最佳答案

试试这个:

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 语句中的表达式。

关于mysql - 关于重复 key 更新 - 需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21285984/

相关文章:

sql - 无法访问 Azure SQL 数据库

MySQL - 什么是 utf8_general_mysql500_ci?

mysql - 为什么在 "JOIN (SELECT)"语句中使用别名会导致错误?

php - Lithium - 如何获取获取的行数?

php - 如何回显所有行和所有列?

mysql - 是否可以在同一台机器上使用 mysql5.5 和 mariaDB 10.0?

使用另一个表的结果进行 SQL 更新

php - 花时间优化 sql 查询 VS 从数据库中推送不必要的数据

mysql - 如何在 Mysql 中计算多天时间窗口中的一个值的平均值?

mysql - mysqldump 脚本上的 utf8 字符串无效