【问题标题】:Insert or update column from one mySQL table to another error从一个 mySQL 表插入或更新列到另一个错误
【发布时间】:2016-08-20 00:04:08
【问题描述】:

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

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 hash”附近使用正确的语法

【问题讨论】:

标签: php mysql


【解决方案1】:

使用以下查询。这将起作用

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

您必须在 on duplicate key 检查之前添加 group by 子句

【讨论】:

  • 问题可能是因为行为中的 COUNT(id) AS 页面没有作为数字传递给 new_table.pages
【解决方案2】:
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;

试试这个

【讨论】:

  • 我加了 ' ; '(分号)结尾。还是一样的错误??
  • 问题可能是因为行为中的 COUNT(id) AS 页面没有作为数字传递给 new_table.pages
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
  • 2014-08-12
  • 2013-08-15
  • 1970-01-01
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多