我试图将三列作为字符串获取,但是由于某种原因,我只能获取NULL。
这是代码:
SELECT CONCAT(name, ' ', city, ' ', country) FROM places
表位置包含三列名称,城市和国家,并且不为空,但是在某些列中可以包含NULL。
结果:
NULL
NULL
NULL,
etc
我尝试了这篇帖子MySQL CONCAT returns NULL if any field contain NULL的答案,但对我来说不起作用。
答案 0 :(得分:3)
您可以尝试使用CONCAT_WS()
SELECT CONCAT_WS(' ', name, city, country) FROM places
答案 1 :(得分:1)
您可能想使用类似COALESCE(name, '')
的东西将空字符串转换为空字符串。由于null表示未知,因此mysql不会假定它表示空字符串。未知物与任何事物串联仍然是未知的。您必须明确告诉它以将其视为空字符串,这就是合并的目的。