我有两个表:项目和temp_projects($ table在下面的代码中)。我正在使用以下MySQL查询来尝试使用项目中的数据更新temp_projects上的字段。MySQL错误1064当使用CASE试图更新两个表之间的字段
下面是该查询:
$this->q("UPDATE $table, projects
CASE
WHEN $table.$number_field != projects.number
THEN set $table.$id_field = projects.id WHERE $table.old_proj_num = projects.number
WHEN $table.$number_field = projects.number
THEN SET $table.$id_field = projects.id WHERE $table.$number_field = projects.number
END");
我得到的错误是:
MySQL error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE
WHEN temp_projects.number != projects.number
THEN set temp_proj' at line 2
When executing:
UPDATE temp_projects, projects
CASE
WHEN temp_projects.number != projects.number
THEN set temp_projects.project_id = projects.id WHERE temp_projects.old_proj_num = projects.number
WHEN temp_projects.number = projects.number
THEN SET temp_projects.project_id = projects.id WHERE temp_projects.number = projects.number
END
我遇到的问题是在错误消息“行然后设置temp_proj”第2行
再经过它应该阅读然后设置temp_projects.project_id = projects.id WHERE temp_projects.number = projects.number。
我想为什么它会切断查询之后再设置temp_proj
我不熟悉使用CASE命令所以任何指针将赞赏弄清楚。
谢谢。
请在下面查看我更新的问题。 – JoeRDG