重複キー ステートメントに関する mysql があります。
mysql_query("INSERT INTO statistics (classify, apply) VALUES ('$classify', 1)
ON DUPLICATE KEY UPDATE apply = apply + 1");
id classify apply
1 A 1
しかし、それは既存の行を更新せず、別の行を追加し続けます。どこに問題がありますか?
ON DUPLICATE KEY
重複キーエラーをスローするレコードを挿入しようとした場合にのみ行を更新します(名前の状態など)。したがって、これは、その列に一意のキーまたは主キーを使用している場合にのみ発生します。classify
列の一意のキーを作成していないようです。
おそらく列classify
はそうではありませんunique
。UNIQUE
機能させるには、テーブルにフィールドが必要ですON DUPLICATE KEY UPDATE
。設定していない場合は、以下のステートメントを実行できます。
ALTER TABLE statistics ADD CONSTRAINT tb_uq UNIQUE (classify)