我正在尝试更新其中一个关系表中的字段。有问题的表是用户技能关系表。我想要更新的领域是熟练程度。
我在PHP中有一个数组,其中以技能名称为关键,以及熟练程度为值。
这是我正在运行的SQL语句。
UPDATE rus
SET proficiency = CASE
WHEN ls.name = 'Objective-C' THEN 'Beginner'
END
FROM rel_users_li_skills rus INNER JOIN li_skills ls ON ls.id = rus.skill_id
WHERE rus.user_id = 3852
枚举PHP数组以在CASE语句中添加额外的WHEN ls.name = 'skill-name' THEN 'proficiency'
语句。
我遇到的问题如下:
检查与您的MySQL服务器版本相对应的手册,以便在'FROM rel_users_li_skills rus INNER JOIN附近使用正确的语法li_skills ls ON ls.id = rus.skill_id WHE'在第1行
我很难过这个。我已经找到了几个SO帖子和论坛,它们似乎使用相同的语法并且没有任何问题。
答案 0 :(得分:3)
在MySQL
中,与SQL Server
不同,您无需在FROM
中引用目标表:
UPDATE rel_users_li_skills rus
JOIN li_skills ls
ON ls.id = rus.skill_id
SET proficiency = CASE WHEN ls.name = 'Objective-C' THEN 'Beginner' END
WHERE rus.user_id = 3852
答案 1 :(得分:1)
我通常使用这种格式。
UPDATE rel_users_li_skills rus INNER JOIN li_skills ls
ON ls.id = rus.skill_id
SET proficiency = (CASE WHEN ls.name = 'Objective-C' THEN 'Beginner' END)
WHERE rus.user_id = 3852