MYSQL ON DUPLICATE KEY UPDATE не обновлялся

У меня есть mysql для дублирования ключевого оператора.

mysql_query("INSERT INTO statistics (classify, apply) VALUES ('$classify', 1) ON DUPLICATE KEY UPDATE apply = apply + 1"); id classify apply 1 A 1 

но он не обновил существующую строку, и она продолжает добавлять другую строку. Где проблема?

Вероятно, classify столбцов не unique . В таблице должно быть поле UNIQUE чтобы сделать работу ON DUPLICATE KEY UPDATE . Если вы его не установили, вы можете выполнить это заявление ниже.

 ALTER TABLE statistics ADD CONSTRAINT tb_uq UNIQUE (classify) 

ON DUPLICATE KEY обновит строку только тогда, когда вы попытаетесь вставить запись, которая будет вызывать ошибку с повторяющимися ключами (например, состояния имен). Таким образом, это происходит, только если вы используете уникальный ключ или первичный ключ для этого столбца. Похоже, что вы не создали уникальный ключ для столбца classify .