4

以下に示すように、更新クエリで2つの異なるテーブルを更新しようとしています

UPDATE  db1.table1 a, db2.table1 b 
SET       b.firstname  =  a.firstname,
          b.lastname   =  a.lastname,
          b.address    =  a.address,
          b.state      =  a.state,
          b.city       =  a.city,
          b.zip        =  a.zip             

WHERE a.stud_id=b.stud_id AND a.firstname IS NOT NULL AND b.firstname IS NULL
          AND str_to_date(a.joindate,'%m/%d/%Y') >= str_to_date('02/01/2012','%m/%d/%Y');

しかし、このクエリを実行しようとすると、MySQL は次のエラーをスローし続けました。

Error Code: 1292. Truncated incorrect DOUBLE value: 'CROUGH0000'

stackoverflow で同様の投稿を見つけましたが、この問題の正確な解決策を見つけることができませんでした。

助けが要る。前もって感謝します


編集:各列のデータ型は次のとおりです

              b.firstname(varchar(25))  =  a.firstname(varchar(52)),
              b.lastname(varchar(25))   =  a.lastname(varchar(35)),
              b.address(varchar(40))    =  a.address(varchar(50)),
              b.state(char(2))      =  a.state(char(2)),
              b.city(varchar(25))       =  a.city(varchar(25)),
              b.zip(varchar(11))        =  a.zip(varchar(11))
4

4 に答える 4

2

これらの列がすべて varchar である場合 (上で述べたように)、問題はa.stud_id=b.stud_id.

テーブル a と b の両方でデータ型を確認します。何かが DOUBLE である必要があります。さもなければ、MySQL はそれについて不平を言うことはありません。

于 2013-04-05T19:04:05.833 に答える