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条数据被修改
修改后的数据是



 

红框的数据没有被修改

猜你喜欢

转载自zhaojian0910.iteye.com/blog/2249344
今日推荐