我试图将三列作为字符串但由于某种原因我只得到 NULL。
这是代码:
SELECT CONCAT(name, ' ', city, ' ', country) FROM places
表places包含三列名称,城市和国家,它不是空的,但是,它可以在某些列中包含NULL。
结果:
NULL
NULL
NULL,
etc
我尝试了这篇文章的答案MySQL CONCAT 如果任何字段包含 NULL 则返回 NULL并且它对我不起作用。
我试图将三列作为字符串但由于某种原因我只得到 NULL。
这是代码:
SELECT CONCAT(name, ' ', city, ' ', country) FROM places
表places包含三列名称,城市和国家,它不是空的,但是,它可以在某些列中包含NULL。
结果:
NULL
NULL
NULL,
etc
我尝试了这篇文章的答案MySQL CONCAT 如果任何字段包含 NULL 则返回 NULL并且它对我不起作用。
你能试试吗CONCAT_WS()
SELECT CONCAT_WS(' ', name, city, country) FROM places
您可能想使用类似COALESCE(name, '')
将空字符串转换为空字符串的方法。由于 null 表示未知,mysql 不会假定它表示空字符串。与任何东西连接的未知仍然是未知的。您必须明确告诉它将其视为空字符串,这就是合并的目的。