2010-10-17 3 views
11

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

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

Я пытался сделать некоторые магии с CONCAT и если ... то без успеха ...

UPDATE - Для того, чтобы продлить мой вопрос, есть функция, которая будет работать как IFNULL но будет работать на нулевой и пустые значения?

ответ

15

Использование IFNULL(b, a).

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

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

+0

Спасибо. Так просто :-( – Jerry2

+0

Извините, я не нашел эту функцию mysqlf. – Jerry2

2
IF(expr1,expr2,expr3) 

Если выражение1 ИСТИНА (выражение1 <> 0 и выражение1 <> NULL), то ЕСЛИ() возвращает expr2; в противном случае он возвращает expr3.

Смежные вопросы