MySQL: как выбрать столбец со значением из другого столбца, в зависимости от того, какие столбцы пусты?

0

У меня есть запрос, который выглядит так:

SELECT id, description, default_error, custom_error  FROM  `table1`;

Что дает мне

(int) (Text)       (Varchar)          (Varchar)
id    Description  Default_Error      custom_error
---------------------------------------------------
 1    Hello        Error 123            
 2    World        Error 456          This is a custom Error

Я хотел бы выбрать дополнительный столбец ( "ошибка" ), который имеет значение default_error, если custom_error EMPTY, а значение custom_error, если custom_error не является EMPTY.

Любая идея, как это сделать в MySQL?

Теги:

3 ответа

1
Лучший ответ

Try

SELECT id, description, default_error, custom_error,
  IF(custom_error='', default_error, custom_error) as error
FROM  `table1`;

ИЛИ - если custom_error равен NULL по умолчанию

SELECT id, description, default_error, custom_error,
  ISNULL(custom_error, default_error) as error
FROM  `table1`;
2

Если custom_error имеет значение null, когда он пуст, вы можете использовать это:

select id, description, coalesce(custom_error, default_error)
0
SELECT id, description, default_error, custom_error,
  IF(custom_error='', default_error, custom_error) as error
FROM  `table1`;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню