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
我试图将三列作为字符串获取,但由于某种原因我只得到 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