响应为空时隐藏分隔符

时间:2019-05-12 00:07:11

标签: mysql string-concatenation is-empty

我正在尝试从数据库中选择客户的地址,邮政编码,城市和国家。我想在一列中显示这些列。因此,我正在使用CONCAT_WS选择我的客户的地址详细信息:

SELECT CONCAT_WS(', ', address, zip, city, country) AS address2 FROM customers

当我的表中有数据时,我会得到正确的响应:

Street, 1234, City, Belgium

没有数据时,该语句仅显示逗号:

, , , Belgium

我想隐藏这些逗号s if there is no data. Does someone know how I can hide these comma

1 个答案:

答案 0 :(得分:1)

CONCAT_WS()会忽略NULL,但不会忽略诸如''之类的空字符串。这些在MySQL中不是同一回事。

要解决此问题,您可以使用NULLIF() function。如果两个参数相等,则返回NULL。

SELECT CONCAT_WS(', ', 
    NULLIF(address, ''), 
    NULLIF(zip, ''), 
    NULLIF(city, ''), 
    NULLIF(country, '')
  ) AS address2 FROM customers