我對我的SQL查詢有點麻煩,並且一直在收到我找不到的語法錯誤。SQL INSERT新行如果列值不存在
有問題的查詢:
INSERT INTO $db (uuid, quest, stage, completion, quest_id, dstart) VALUES ('".$avatar_key."','".$quest_name."','".$quest_stage."','".$qc."','".$quest_id."','".$date."') WHERE NOT EXISTS (SELECT *
FROM $db
WHERE uuid = '$avatar_key' AND quest_id = '$quest_id'
)
我試圖做的是檢查表有一排,既準確$ avatar_key和$ quest_id值,如果這樣的行不存在,那麼我希望它插入一個新的。
我收到一個錯誤,我似乎無法弄清楚如何修復;查詢本身在我看來(儘管我是一個SQL新手),這是/應該/工作。我正在使用SQL 5.5,&這是我收到的錯誤消息:
您的SQL語法錯誤;檢查 對應於你的MySQL服務器版本正確的語法使用 附近手冊「WHERE NOT EXISTS(SELECT * FROM sldb_quest WHERE UUID = '0089dcea-' 在行1
我知道有一個唯一的標識符會對此有所幫助,但是數據庫將存儲很多行,其中許多行具有相同的值,唯一的唯一值將是UUID,然後我必須與quest_id匹配以便找到我想要的特定行 uuids看起來像這樣:「0089dcea-bf39-40f5-859e-d79bdc383f1b」,並且是爲每個用戶唯一生成的
任何指針,我做錯了將非常感激!我確信這只是我錯過某處的一個小細節,但我找不到原因。
可能的重複http://stackoverflow.com/questions/1218905/how-do-i-update-if-exists-insert-if-not-aka-upsert-or-merge-in-mysql – PinnyM