Mysql Query使用WHEN,AND更新多个条件的多个列

I'm writing sql UPDATE to 2 columns with 2 conditions. Before I run sql the sender_del_flag and receiver_del_flag are all 0 but after I run this some value return null. I wonder why it changed to null. How to fix this?

   UPDATE `messages` SET 
        receiver_del_flag = CASE 
            WHEN `id`='4' AND receiver='92' THEN '1' 
            WHEN `id`='6' AND receiver='92' THEN '1' 
            WHEN `id`='8' AND receiver='92' THEN '1' 
        END, 
        sender_del_flag = CASE 
            WHEN `id`='4' AND sender='92' THEN '1' 
            WHEN `id`='6' AND sender='92' THEN '1' 
            WHEN `id`='8' AND sender='92' THEN '1' 
        END 
    WHERE id IN ('4', '6', '8')

enter image description here

This fixes the problem:

   UPDATE `messages` SET 
        receiver_del_flag = CASE 
            WHEN `id`='4' AND receiver='92' THEN '1' 
            WHEN `id`='6' AND receiver='92' THEN '1' 
            WHEN `id`='8' AND receiver='92' THEN '1' 
            ELSE receiver_del_flag
        END, 
        sender_del_flag = CASE 
            WHEN `id`='4' AND sender='92' THEN '1' 
            WHEN `id`='6' AND sender='92' THEN '1' 
            WHEN `id`='8' AND sender='92' THEN '1' 
            ELSE sender_del_flag
        END 
    WHERE id IN ('4', '6', '8');

Your where clause is getting rows where the sender and receiver are 92. These are set correctly. It is also getting rows where the values are not 92. These are set to NULL, because there was no ELSE clause.