mysql 5.3 - 有些错误,但查询似乎没问题

时间:2012-07-18 16:55:32

标签: mysql

  

mysql查询 - 错误:您的SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在'a','1'附近使用正确的语法。在第1行上重复UPIDATE计数=计数+ 1'

失败的查询:

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

我的查询有什么问题吗?

1 个答案:

答案 0 :(得分:0)

count是内置函数,因此may require care to be used as such。但是,正如文档所说,它作为列名完全没问题。您可能想要使用

来转义它
`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'后面),这似乎不是问题(因为它没有在错误信息中给出),但你应该粘贴确切的查询:< / p>

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