我正在尝试从数据库中选择客户的地址,邮政编码,城市和国家。我想在一列中显示这些列。因此,我正在使用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
?
答案 0 :(得分:1)
CONCAT_WS()会忽略NULL,但不会忽略诸如''
之类的空字符串。这些在MySQL中不是同一回事。
要解决此问题,您可以使用NULLIF() function。如果两个参数相等,则返回NULL。
SELECT CONCAT_WS(', ',
NULLIF(address, ''),
NULLIF(zip, ''),
NULLIF(city, ''),
NULLIF(country, '')
) AS address2 FROM customers