2017-02-19 4 views
0

EmployeesテーブルのJob_IDカラムには各行ごとに一意のデータがありますが、次のように別のカラム FIRST_NAMEの値を使用して 'MANAGER'または 'TELLER'更新は起こっていない 私の期待がFIRST_NAME = VIJES OR UNNATHためJOB_IDが「マネージャ」であると他人のために、「テラー」0行(複数可)の影響を受ける行が一致としてMySQL - ケースを使用して複数の値を更新するEnd

応答を取得するなければならないべきである:6は、変更します:0警告:0

UPDATE EMPLOYEES 
SET JOB_ID = CASE 
WHEN FIRST_NAME IN ('VIJES','UNNATH') THEN JOB_ID = 'MANAGER' 

WHEN FIRST_NAME NOT IN ('VIJES','UNNATH') THEN JOB._ID = 'TELLER' 
END 
WHERE FIRST_NAME IN ('VIJES','UNNATH','VINOD','RAKESH','ANANT','MUKESH') 

私は個々の更新クエリを発火させることができますが、行ごとにFIRST_NAMEの基準を使用していますが、テーブル全体に対する単一の更新クエリを探しています。

答えて

0

あなたはCASE表現にJOB_ID列を代入される使用する必要がある構文、そして何よりもを明確にしてください。現在、CASE式に代入しています。式は、更新中の列に値を再度割り当てようとしています。

UPDATE EMPLOYEES 
SET JOB_ID = CASE WHEN FIRST_NAME IN ('VIJES','UNNATH') 
        THEN 'MANAGER' 
        ELSE 'TELLER' END 
WHERE FIRST_NAME IN ('VIJES', 'UNNATH', 'VINOD', 'RAKESH', 'ANANT', 'MUKESH') 

このクエリを使用してみてください

関連する問題