0

mysql 查询 - 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'a', '1') ON DUPLICATE KEY UPDATE count=count+1' 附近使用正确的语法

失败的查询:

INSERT INTO tags (ip, tag, count) 
  VALUES ('xx.xx.xxx.xxx', 'krwiopijcy', '1') 
  ON DUPLICATE KEY UPDATE count=count+1;

我的查询有什么问题吗?

4

1 回答 1

0

count是一个内置函数,因此可能需要小心使用。但是,正如文档所说,作为列名非常好。您可能想使用

`count`

话虽如此,我对使用此表结构的确切查询(无转义)没有任何问题:

CREATE TABLE `tags` (
  `ip` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `tag` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `count` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`ip`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

您在评论中的示例有一个撇号太多(在“umacku”后面),这似乎不是问题(因为它没有在错误消息中给出),但您应该粘贴确切的查询:

INSERT INTO tags (ip, tag, count)
    VALUES ('xx.xx.xxx.xxx', 'umacku'', '1')
    ON DUPLICATE KEY UPDATE count=count+1;
于 2012-07-18T17:15:14.473 回答