Заменить пустую запись столбца на 'foo' в запросе SELECT? - PullRequest
3 голосов
/ 24 марта 2009

Я создаю резервную копию таблицы MySql на листе. В моем текущем наборе результатов есть строки, в которых некоторые столбцы пусты.

Это нормально, но для рабочего листа мне нужно заменить их на 'foo'. HowTo?

Вся помощь высоко ценится.

Ответы [ 3 ]

7 голосов
/ 24 марта 2009

Пусто или NULL? Там есть большая разница. Если это NULL, вы можете использовать функцию COALESCE():

SELECT COALESCE(`MyColumn`, 'foo') As MyColumn FROM `MyTable`

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

SELECT IF(char_length(`MyColumn`)>0, `MyColumn`, 'foo') AS MyColumn FROM `MyTable

Или вы можете даже объединить их:

SELECT IF(char_length(COALESCE(`MyColumn`,''))>0,`MyColumn`,'foo') AS MyColumn FROM `MyTable`
3 голосов
/ 24 марта 2009

Просто используйте «IFNULL»:

SELECT IFNULL(col1,'foo')
FROM mytable
2 голосов
/ 24 марта 2009

Оператор COALESCE возвращает первый ненулевой параметр, который ему передан:

SELECT COALESCE(column,'foo')

Возвращает column, если оно не равно нулю, 'foo' в противном случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...