2017-11-11 20 views
0

正面を上にすると、私はDBクラスにあり、正解に近づくためにヒントを使用することができます。ジョインなしの別のテーブルの値に基づいてカラムを更新する

ticket_oldテーブルには、技術者の名字があります。一意の名前は2つしかありません。新しいticketテーブルで

は、私がticket_oldテーブルで検出されたハイテクのlast_nameに一致intを必要とtech_id列を持っています。

私は以下のコードを使用してこれを実行しようとしています。これは正常に実行され、0行を更新します。

UPDATE ticket,ticket_old 
    SET tech_id = (CASE WHEN ticket_old.techLast = 'name1' THEN 1 
    WHEN ticket_old.techLast = 'name2' THEN 2 
    END) 
; 

-edit、私も実行して0行を更新しようとしました。

SETのtech_id =(CASE ticket_old.techLast == 'NAME1' THEN 1 ticket_old.techLast ==「NAME2:二つの値を比較するとき

UPDATE ticket, 
(SELECT techLast FROM ticket_old WHERE techLast = 'name1') as src 
SET ticket.tech_id = 1; 

答えて

0

、 常にダブル等しいマークを使用'THEN 2 END)

「名前」か「名前」かどうかわかりません。それを試してみてください。

+0

'==' – user4317867

+0

にエラーを指定してくださいエラーを説明できますか? –

+0

'==' name1 'の近くに「#1064」というエラーが表示される – user4317867

関連する問題