MySql:SQL UPDATE или INSERT, если строка не существует
"UPDATE FYP_MilestoneNotes SET Notes = '$notes' WHERE UserID = $userID AND MilestoneID = $milestoneID"
Когда эта строка не существует, я получаю сообщение об ошибке, как ожидается, как я могу изменить это, чтобы вставить строку с теми же значениями, если один еще не существует?
Я пробовал:
"INSERT INTO FYP_MilestoneNotes SET Notes = '$notes'
WHERE UserID = $userID
AND MilestoneID = $milestoneID
ON DUPLICATE KEY UPDATE FYP_MilestoneNotes
SET Notes = '$notes'
WHERE UserID = $userID
AND MilestoneID = $milestoneID
"
не повезло
Я также попытался предложенный ниже:
У Вас есть ошибка в вашем SQL синтаксиса; в руководстве, соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи 'WHERE UserID = 2 И MilestoneID = 11 ON DUPLIC' в строке 1
INSERT INTO FYP_MilestoneNotes (Примечания) VALUES ('sdgfdgfd') Где Идентификатор_пользователя = 2 и MilestoneID = 11 пО DUPLICATE KEY UPDATE отмечает = 'sdgfdgfd', где USERID = 2 и MilestoneID = 11
Быстрый поиск google показывает: http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html – apokryfos
Вы хотите использовать 'INSERT INTO ... ON DUPLICATE KEY UPDATE' Docs : http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html – Mikey
Возможный дубликат ["INSERT IGNORE" vs "INSERT ... ON DUPLICATE KEY UPDATE"] (http: //stackoverflow.com/questions/548541/insert-ignore-vs-insert-on-duplicate-key-update) – chris85