Скрыть разделитель, когда ответ пуст - PullRequest
1 голос
/ 12 мая 2019

Я пытаюсь выбрать адрес, почтовый индекс, город и страну моих клиентов из базы данных.Я хочу показать эти столбцы в одном столбце.Поэтому я использую 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 s?

1 Ответ

1 голос
/ 12 мая 2019

CONCAT_WS () игнорирует NULL, но не игнорирует пустые строки, такие как ''.Это не одно и то же в MySQL.

Чтобы обойти это, вы можете использовать функцию NULLIF () .Возвращает NULL, если два его аргумента равны.

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