我有表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”附近使用正确的语法
答案 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子句