当在表中找不到时,mysql将值映射到默认值

时间:2011-11-18 03:09:27

标签: mysql sql mapping default-value

我在mySQL中有这个表,用于将一些值映射到其他值,例如将国家/地区映射到大写字母。

我想用这种方式使用它:

SELECT capital
FROM CountryData
WHERE country = 'France';

或者更确切地说,更新其他一些表:

UPDATE CustomerData
SET customerCapital =
   SELECT capital
   FROM CountryData
   WHERE CountryData.country = CustomerData.customerCountry

如果在Country表中找不到该国家/地区,则会出现问题。如果customerCapital表格中不存在'UNKNOWN',我怎样才能将NULL设置为默认值customerCountry而不是CountryData

1 个答案:

答案 0 :(得分:2)

检查COALESCE功能。

但是,我不建议您存储任意值而不是NULL。除NULL 之外的任何其他值本身就是一种信息。你想显示缺乏价值,因此你应该使用NULL 这听起来像是一个美容问题。如果要在将customerCapital打印到屏幕时显示值,则应在应用程序代码中将NULL转换为UNKNOWN