Php Sql使用WHEN和WHERE更新空值

Php Sql使用WHEN和WHERE更新空值,php,mysql,Php,Mysql,我无法使用WHEN和WHERE更新空行。我的问题出了什么问题 UPDATE `product` SET `city` = CASE `city` WHEN NULL THEN 'Gangnam' WHEN 'Seouls' THEN 'Seoul' END WHERE city IN (NULL, 'Seoul') 与NULL UPDATE `product` SET `city` = CASE WHEN `city` IS NULL TH

我无法使用WHEN和WHERE更新空行。我的问题出了什么问题

UPDATE `product` SET `city` = CASE `city`   
WHEN NULL THEN 'Gangnam' 
WHEN 'Seouls' THEN 'Seoul'
END  
WHERE city IN (NULL, 'Seoul')

NULL

UPDATE `product` 
SET `city` = 
     CASE    
          WHEN `city` IS NULL THEN 'Gangnam' 
          WHEN `city` = 'Seouls' THEN 'Seoul'
     END  
WHERE city is NULL OR city = 'Seoul'

NULL

UPDATE `product` 
SET `city` = 
     CASE    
          WHEN `city` IS NULL THEN 'Gangnam' 
          WHEN `city` = 'Seouls' THEN 'Seoul'
     END  
WHERE city is NULL OR city = 'Seoul'

在sql中,带有NULL的comparison总是false,因此必须使用特殊运算符is NULL

另一种方法是将查询一分为二:

更新
产品
设置
城市
=“江南”,其中
城市
为空


更新
product
SET
city
='Seouls'其中
city
='Seouls'

在sql中,与NULL的比较总是false,因此必须使用特殊运算符NULL

UPDATE `product` SET `city` =  
CASE 
    WHEN `city` IS  NULL THEN 'Gangnam' 
    WHEN `city` = 'Seouls' THEN 'Seoul'
END 
WHERE city IS NULL OR city = 'Seouls'
另一种方法是将查询一分为二:

更新
产品
设置
城市
=“江南”,其中
城市
为空

更新
产品
设置
城市
='Seouls'其中
城市
='Seouls'

UPDATE `product` SET `city` =  
CASE 
    WHEN `city` IS  NULL THEN 'Gangnam' 
    WHEN `city` = 'Seouls' THEN 'Seoul'
END 
WHERE city IS NULL OR city = 'Seouls'