0

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

这是代码:

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

表places包含三列名称,城市和国家,它不是空的,但是,它可以在某些列中包含NULL。

结果:

NULL
NULL
NULL,
etc

我尝试了这篇文章的答案MySQL CONCAT 如果任何字段包含 NULL 则返回 NULL并且它对我不起作用。

4

2 回答 2

3

你能试试吗CONCAT_WS()

SELECT CONCAT_WS(' ', name, city, country) FROM places 
于 2019-05-16T18:02:09.947 回答
1

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

于 2019-05-16T17:57:48.700 回答