mysql update 使用 WHEN/THEN/ELSE/END 的時候非WHEN的數據被改成null

 

先查看一下數據

 

SELECT b.email_remind_id,b.send_status FROM b_email_msg_remind  b;


 然後執行

UPDATE b_email_msg_remind 
SET 
    send_status =CASE 
        WHEN email_remind_id = '234746e8-4cab-444c-86ee-ea73c57cb7de' THEN 1 
        WHEN email_remind_id = '48d4a578-141e-421c-9eed-0c26de4b8f48' THEN 1  
        WHEN email_remind_id = '674969cd-ae86-4a5c-b813-57cc6183f8e5' THEN 1
        WHEN email_remind_id = '991664d6-4fe3-47c7-add7-e861f617992d' THEN 1
        END

 

工具的日誌爲:


 看到修改了5行數據,但是隻有4個WHEN

修改後的數據是



 這個沒有WHEN的條件的數據send_status被改成了null

 

我們現在加上ELSE

SELECT b.email_remind_id,b.send_status FROM b_email_msg_remind  b;

 

 然後執行

UPDATE b_email_msg_remind 
SET 
    send_status =CASE 
        WHEN email_remind_id = '234746e8-4cab-444c-86ee-ea73c57cb7de' THEN 1 
        WHEN email_remind_id = '48d4a578-141e-421c-9eed-0c26de4b8f48' THEN 1  
        WHEN email_remind_id = '674969cd-ae86-4a5c-b813-57cc6183f8e5' THEN 1
        WHEN email_remind_id = '991664d6-4fe3-47c7-add7-e861f617992d' THEN 1 ELSE send_status END

工具的日誌爲:


可以看到這次只有4條數據被修改
修改後的數據是



 

紅框的數據沒有被修改

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章