メッセージテーブルでCASE文を使用しようとしています。最初のCASE文が真であるときに表示されたメッセージに印を付ける必要があります。従業員2がメッセージを削除する前にここで1つのクエリで追加のフィールド値を設定するMySQL CASE
UPDATE messages
SET to_del=CASE WHEN to=2 THEN 1 ELSE to_del END,
from_del=CASE WHEN from=2 THEN 1 ELSE from_del END,
WHERE company_id = '1'
は次のとおりです。従業員2はメッセージを削除した後、ここで
company_id | to | from | to_del | from_del | viewed
1 4 2 0 0 0
1 2 4 0 0 0
は次のとおりです。
これは動作しませんでしたが、それは似たようなあるべきしようcompany_id | to | from | to_del | from_del | viewed
1 4 2 0 1 0
1 2 4 1 0 0 <-- viewed should be 1
同じクエリの中で:
UPDATE messages
SET to_del=CASE WHEN to=2 THEN 1 ELSE to_del, viewed=1 END, <-- viewed=1 not working
from_del=CASE WHEN from=2 THEN 1 ELSE from_del END,
WHERE company_id = '1'
第1のCASE文が真である場合にのみ、どのように表示= 1にすることができますか?
私が見るための第三のケースを使用しないようにしようとしていました。 2つのケースで動作させることは可能ですか? – Maverick