响应为空时隐藏分隔符
Hide seperator when response is empty
我正在尝试从数据库中 select 我的客户的地址、邮政编码、城市和国家/地区。我想在一栏中显示这些栏。所以我使用 CONCAT_WS 到 select 我客户的详细地址:
SELECT CONCAT_WS(', ', address, zip, city, country) AS address2 FROM customers
当我的 table 中有数据时,我得到正确的响应:
Street, 1234, City, Belgium
没有数据时,语句只显示逗号:
, , , Belgium
我想隐藏这些逗号s if there is no data. Does someone know how I can hide these comma
吗?
CONCAT_WS() 会忽略 NULL,但不会忽略像 ''
这样的空字符串。这些在 MySQL.
中不是一回事
要解决此问题,您可以使用 NULLIF() function。如果它的两个参数相等,则此 returns NULL。
SELECT CONCAT_WS(', ',
NULLIF(address, ''),
NULLIF(zip, ''),
NULLIF(city, ''),
NULLIF(country, '')
) AS address2 FROM customers
我正在尝试从数据库中 select 我的客户的地址、邮政编码、城市和国家/地区。我想在一栏中显示这些栏。所以我使用 CONCAT_WS 到 select 我客户的详细地址:
SELECT CONCAT_WS(', ', address, zip, city, country) AS address2 FROM customers
当我的 table 中有数据时,我得到正确的响应:
Street, 1234, City, Belgium
没有数据时,语句只显示逗号:
, , , Belgium
我想隐藏这些逗号s if there is no data. Does someone know how I can hide these comma
吗?
CONCAT_WS() 会忽略 NULL,但不会忽略像 ''
这样的空字符串。这些在 MySQL.
要解决此问题,您可以使用 NULLIF() function。如果它的两个参数相等,则此 returns NULL。
SELECT CONCAT_WS(', ',
NULLIF(address, ''),
NULLIF(zip, ''),
NULLIF(city, ''),
NULLIF(country, '')
) AS address2 FROM customers