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;