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


Insert or update column from one mySQL table to another error

我有一个表格behaviour,我在其中计算每个哈希的页面。我想将结果传输到新表中new_table.如果new_table上的hash存在,则只需更新pages数即可。Otherwhise,如果是在尚未插入behaviour上找到的新hashnew_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;

试试这个