2016-04-15 20 views
2

私はテーブルには、私は、次のコマンドを作るのMySQL - 更新/ケース

TestNumber (int primary key) 
InactiveBitwise (int) 

をテストします:

UPDATE tests SET CASE 
     WHEN TestNumber = 2 THEN InactiveBitwise = (InactiveBitwise | 4) 
     WHEN TestNumber = 3 THEN InactiveBitwise = (InactiveBitwise | 8) 
END WHERE TestNumber IN (2, 3) 

それは

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE WHEN TestNumber = 2 THEN InactiveBitwise = (InactiveBitwise |' 

を与え、エラーの両方TestNumber = 2と私は以前にデータベースへの呼び出しからそれらを取得しているので、3が存在します。

誰も気に入らないのですか?

答えて

2

は、あなたが変更したい列の値を指定する必要があり、場合にのみ返された値を判断します:

UPDATE tests SET InactiveBitwise = CASE 
     WHEN TestNumber = 2 THEN (InactiveBitwise | 4) 
     WHEN TestNumber = 3 THEN (InactiveBitwise | 8) 
    END 
WHERE TestNumber IN (2, 3) 
+0

おかげで、魅力を働きました。 – Rewind