我在mysql中的case语句中遇到语法错误。
1064-您的sql语句中有错误。

insert into
abc_table(release_date,title,detail,num)
select model1.release_date,model1.title,model1.detail,model1.num
CASE
WHEN model1.num= 0 THEN 3
WHEN model1.num= 1 THEN 1
WHEN model1.num= 2 THEN 2
END AS model1.num
from def_table  model1


这个语法在mysql中正确吗

最佳答案

您有两个model1.num列:

insert into abc_table(release_date,title,detail,num)
select model1.release_date,
   model1.title,
   model1.detail,
   model1.num -- <-- extra
   CASE
      WHEN model1.num= 0 THEN 3
      WHEN model1.num= 1 THEN 1
      WHEN model1.num= 2 THEN 2
      END AS num
from def_table  model1


您的代码应为:

insert into abc_table(release_date,title,detail,num)
select model1.release_date,
   model1.title,
   model1.detail,
   CASE
      WHEN model1.num= 0 THEN 3
      WHEN model1.num= 1 THEN 1
      WHEN model1.num= 2 THEN 2
      END AS num
from def_table  model1


注意:有时,格式化代码格式将有助于发现这些错误。当所有列都排成一行时,可能很难看清。

关于mysql - 在mysql查询中的case语句中获取语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14376610/

10-16 13:26