2012-07-18 61 views
0

mysql query - error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a', '1') ON DUPLICATE KEY UPDATE count=count+1' at line 1的MySQL 5.3 - 一些錯誤,但查詢似乎確定

失敗查詢:

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

這有什麼錯我的查詢?

+1

您已粘貼的查詢錯誤信息不是m ATCH。在你的查詢中沒有「a」,「1」)。請發佈未能執行的* exact *查詢。 – cdhowie 2012-07-18 16:59:21

+2

錯誤說明與插入語句不匹配。你可以發佈那個有'...'a','1')...'的查詢嗎? – 2012-07-18 17:00:16

+0

這很奇怪,因爲這是錯誤的查詢。等待一秒 – ElSajko 2012-07-18 17:06:44

回答

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'後面),這似乎不是問題(因爲它沒有在錯誤信息中給出),但您應該粘貼確切的查詢:

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

是的,非常感謝!嗯,我使用node.js和擴展名的MySQL,並有逃逸功能,但我看到它不工作,因爲這個撇號 – ElSajko 2012-07-18 17:20:47

+0

@Kamil不是我的業務,​​但...沃爾福姆提供了一個高質量的答案,你謝謝他,但你不會提高回答率,也不會接受他的回答。有什麼理由呢? – 2012-07-18 17:43:08