我有一个表格behaviour
,我在其中计算每个哈希的页面。我想将结果传输到新表中new_table
.如果new_table
上的hash
存在,则只需更新pages
数即可。Otherwhise,如果是在尚未插入behaviour
上找到的新hash
,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 行"按哈希分组"上收到错误。我做错了什么?
#1064 - 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本对应的手册,了解在第 5 行的"GROUP BY 哈希"附近使用的正确语法
使用以下查询。这将起作用
INSERT INTO new_table (hash, pages)
SELECT hash, COUNT( id ) AS pages
FROM behaviour GROUP BY hash
ON DUPLICATE KEY UPDATE pages=VALUES(pages)
必须在重复键检查之前添加分组依据子句
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;
试试这个