当前位置: 首页 > 知识库问答 >
问题:

CONCAT返回null[重复]

齐阳
2023-03-14

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

以下是代码:

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

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

结果是:

NULL
NULL
NULL,
etc

我试着从这篇帖子中得到答案,如果任何字段包含NULL,MySQL CONCAT将返回NULL,但它对我不起作用。

共有2个答案

勾炳
2023-03-14

您可能希望使用类似于COALESCE(name, '')的东西将空字符串转换为空字符串。由于null意味着未知,mysql不会假设它意味着空字符串。未知与任何东西相连仍然是未知的。你必须明确地告诉它,把它当作空字符串,这就是合并的目的。

刘明朗
2023-03-14

你能试试CONCAT_WS()

SELECT CONCAT_WS(' ', name, city, country) FROM places 
 类似资料:
  • 我有以下数据在我的表"设备" 我执行了下面的查询 它返回下面给出的结果 如何解决这个问题,让它忽略NULL,结果应该是

  • 我遇到了一个类似于将多个表中的数据合并到单行中的问题,同时连接一些值,但我不能理解它,而且我是sql查询的新手。我有很少的表,我必须将它们连接起来,并在一行中得到一些串联的数据。说明如下: 而我运行的查询是: 这个查询的结果是: 我不明白为什么名字和电子邮件是重复的?请帮我解决这个问题,也请你解释一下我在概念上哪里出了问题? 我注意到,当与任务关联的类别数超过一个时,就会出现这个问题。请查看htt

  • 问题内容: 我的“设备”表中有以下数据 我执行以下查询 返回下面给出的结果 如何得出这一点,以便它应该忽略NULL并且结果应该是 问题答案: 通过将其包装在空字符串中来转换值

  • 我正在尝试从json文件读取到读取器,以便将其解析为java对象:` ' 我在运行时收到一个NullPointerException。

  • 这个函数总是返回null. t是不被分配与令牌值.有人能帮助请?