我有兩個表:項目和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