在SELECT查询中用'foo'替换列的空记录?

时间:2009-03-24 14:47:20

标签: mysql select

我正在将MySql -table备份到工作表。 我当前的结果集包含一些列为空的行。

没关系,但对于工作表我需要用'foo'替换它们。 方法文档?

非常感谢所有帮助。

3 个答案:

答案 0 :(得分:7)

空或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`

答案 1 :(得分:3)

只需使用“IFNULL”:

SELECT IFNULL(col1,'foo')
FROM mytable

答案 2 :(得分:2)

COALESCE语句返回传递的第一个非null参数:

SELECT COALESCE(column,'foo')

如果它不为空,则返回column,否则返回'foo'