1

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で正しいですか

4

4 に答える 4

1

次の2つの列があります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

注:コードをフォーマットすると、これらのエラーを見つけるのに役立つ場合があります。すべての列が1つの行にあるかどうかを確認するのは難しい場合があります。

于 2013-01-17T10:10:11.207 に答える
0

これを試して、

カンマを1つ逃しました

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 model1.num
from def_table  model1
于 2013-01-17T10:09:55.110 に答える
0

このselectステートメントに追加の列があります。

select model1.release_date,model1.title,model1.detail,model1.num
于 2013-01-17T10:11:09.403 に答える
0
insert into abc_table(release_date,title,detail,num)  
select m.release_date
     , m.title
     , m.detail
     , CASE WHEN m.num = 0 THEN 3
            WHEN m.num= 1 THEN 1
            WHEN m.num= 2 THEN 2
        END num
  FROM def_table m;
于 2013-01-17T10:16:28.587 に答える