php - 使用 CASE 尝试更新两个表之间的字段时出现 MySQL 错误 1064

标签 php mysql case

我有两个表:projects 和 temp_projects(下面代码中的 $table)。我正在使用以下 MySQL 查询来尝试使用项目中的数据更新 temp_projects 上的字段。

这是查询:

    $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

我遇到的问题是错误消息“THEN set temp_proj”在第 2 行中的行

THEN 之后应为 THEN SET temp_projects.project_id =projects.id WHERE temp_projects.number =projects.number

我试图找出为什么它在THEN set temp_proj之后切断查询

我不熟悉使用 CASE 命令,因此我们将不胜感激。

谢谢。

最佳答案

按如下方式进行查询:

> UPDATE Students  
  SET NAME =  CASE  
>                         WHEN NAME = 'ABC' THEN 'MNO' 
>                         WHEN NAME = 'DEF' THEN 'JKL' 
>                         WHEN NAME = 'EFG' THEN 'GHI' 
>                         ELSE NAME
>      END  WHERE   LASTNAME IN ('ABC', 'DEF', 'EFG')

关于php - 使用 CASE 尝试更新两个表之间的字段时出现 MySQL 错误 1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39645108/

相关文章:

php - Ajax post数据用php采集数据

php - Android 到 MySQL 土耳其语字符写入为 "?"

php - mysql 在最后一条之前插入记录

python - Django 与 MySQL uuid

php - mysqli案例问题从内部案例中选择

sql - SQL Server 中连接表时的条件

php - symfony2 - assetic assetic :dump command doesn't create stylesheets correctly

php - 选择状态mysql数组

sql - 无法在mysql中使用时间戳进行搜索

sql - 在 Postgres 中翻译 DECODE