从一个mySQL表插入或更新列到另一个错误

时间:2016-04-26 09:03:51

标签: php mysql

我有表behaviour,其中我计算每个哈希的页面。我想将结果转移到新表new_table中。 如果hash上存在new_table,则只需更新pages的数量。 另外,如果是hash上找到的新behaviour尚未插入new_table只是添加它。

INSERT INTO new_table (hash, pages)
SELECT hash, COUNT( id ) AS pages
FROM behaviour
ON DUPLICATE KEY UPDATE new_table.pages=behaviour.pages
GROUP BY hash

我在第5行“hash by hash”中收到错误。 我做错了什么?

  

#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第5行的“GROUP BY hash”附近使用正确的语法

2 个答案:

答案 0 :(得分:0)

INSERT INTO new_table (hash, pages)
SELECT hash, COUNT( id ) AS pages
FROM behaviour
ON DUPLICATE KEY UPDATE new_table.pages=behaviour.pages
GROUP BY hash;

试试这个

答案 1 :(得分:0)

使用以下查询。这将有效

INSERT INTO new_table (hash, pages)
SELECT hash, COUNT( id ) AS pages
FROM behaviour GROUP BY hash
ON DUPLICATE KEY UPDATE pages=VALUES(pages)

您必须在重复键检查之前添加group by子句