CONCAT return 空

CONCAT return null

我试图将三列作为字符串获取,但由于某种原因我只得到 NULL。

这是代码:

SELECT CONCAT(name, ' ', city, ' ', country) FROM places   

table 个地方包含 name、city 和 country 三列,它不是空的,但是,它可以在某些列中包含 NULL。

结果:

NULL
NULL
NULL,
etc

我尝试了这个 post MySQL CONCAT returns NULL if any field contain NULL 的答案,但它对我不起作用。

您可能想使用 COALESCE(name, '') 之类的方法将空字符串转换为空字符串。由于 null 表示未知,mysql 不会假定它表示空字符串。 Unknown 与任何东西串联仍然是未知的。你必须明确地告诉它把它当作空字符串,这就是合并的目的。

你可以试试 CONCAT_WS()

SELECT CONCAT_WS(' ', name, city, country) FROM places