Подтвердить что ты не робот

Выберите значение столбца, если не null else, используйте другое значение столбца

У меня есть 2 столбца в таблице mysql: a и b. a - это строковое значение allways, а b иногда представляет собой строковое значение, а иногда оно равно null.

Как построить mysql SELECT так, чтобы b был принят, если он не является нулевым, а a будет использоваться иначе.

Я попытался сделать какую-то магию с concat и если... тогда без успеха...

UPDATE. Чтобы расширить мой вопрос, существует ли функция, которая работает как Ifnull, но будет работать для нулевых и пустых значений?

4b9b3361

Ответ 1

Используйте IFNULL (b, a).

Если expr1 не является NULL, IFNULL() возвращает expr1; иначе он возвращает expr2.

Это специфическая функция MySQL. Вы также можете использовать COALESCE таким же образом. Это будет работать в большем количестве баз данных, но имеет немного худшую производительность в MySQL, чем IFNULL.

Ответ 3

IF(expr1,expr2,expr3)

Если expr1 является TRUE (expr1 < > 0 и expr1 < > NULL), то IF() возвращает expr2; в противном случае он возвращает expr3.