Я пытаюсь использовать `ON DUPLICATE KEY UPDATE ', но он продолжает добавлять новую строку вместо обновления.Вставить, если DNE еще обновить строку Mysql
INSERT INTO favorites (userid, topicid)
VALUES ('2', '50')
ON DUPLICATE KEY UPDATE
active = 0;
мой стол избранных устанавливаются следующим образом:
favoritesid (AI)
userid
topicid
active (boolean)
Если идентификатор пользователя и TopicID уже существует (оба из них в той же строке), то я просто хочу, чтобы изменить active
0.
Возможно ли это?
Для того, чтобы нажать «ON DUPLICATE KEY», ключ должен существовать до вашей вставки. Это действительно так? Действительно ли поля являются уникальным ключом (первичный ключ, уникальный индекс)? – Bjoern
Я бы сказал, нет. Есть ли альтернативный способ сделать это в одном запросе, когда это не так? –
Если в нем нет уникальных ключей, это не поможет вам использовать 'ON DUPLICATE KEY'. Либо добавьте уникальный ключ, либо сначала запросите запрос, чтобы узнать, существует ли ваше значение в вашей таблице перед вставкой. – Bjoern