我的 SQL 查询遇到了一点问题,并且不断收到我无法弄清楚的语法错误。
有问题的查询是:
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 服务器版本相对应的手册,以在第 1 行的 'WHERE NOT EXISTS (SELECT * FROM sldb_quest WHERE uuid = '0089dcea-' 附近使用正确的语法
我知道拥有唯一标识符会有所帮助,但数据库将存储大量行,其中许多行将具有相同的值,唯一的唯一值将是 UUID,然后我必须将其与quest_id 以找到我想要的特定行。uuid 看起来像这样:“0089dcea-bf39-40f5-859e-d79bdc383f1b”并且是为每个用户唯一生成的。
任何关于我做错了什么的指针将不胜感激!我敢肯定这只是我设法错过的一个小细节,但我没有找到原因。