我無法使用WHEN和WHERE更新NULL行。我的查詢出了什麼問題?Sql Update使用WHEN和WHERE的NULL值
UPDATE `product` SET `city` = CASE `city`
WHEN NULL THEN 'Gangnam'
WHEN 'Seouls' THEN 'Seoul'
END
WHERE city IN (NULL, 'Seoul')
我無法使用WHEN和WHERE更新NULL行。我的查詢出了什麼問題?Sql Update使用WHEN和WHERE的NULL值
UPDATE `product` SET `city` = CASE `city`
WHEN NULL THEN 'Gangnam'
WHEN 'Seouls' THEN 'Seoul'
END
WHERE city IN (NULL, 'Seoul')
使用IS NULL
比較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一個comparaison永遠是假的,所以你必須起訴特殊的運算符IS NULL
另一種方法是分裂你查詢二:
UPDATE product
SET city
='江南'WHERE city
IS NULL
UPDATE product
SET city
= 'Seouls' WHERE city
= '首爾'
UPDATE `product` SET `city` =
CASE
WHEN `city` IS NULL THEN 'Gangnam'
WHEN `city` = 'Seouls' THEN 'Seoul'
END
WHERE city IS NULL OR city = 'Seouls'
也許IFNULL? :) –