0

mysql クエリ - エラー: SQL 構文にエラーがあります。'a', '1') ON DUPLICATE KEY UPDATE count=count+1' at line 1 の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

失敗するクエリ:

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;

コメントからの例には、アポストロフィが 1 つ多すぎます (「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 に答える