我正在将MySql -table备份到工作表。 我当前的结果集包含一些列为空的行。
没关系,但对于工作表我需要用'foo'替换它们。 方法文档?
非常感谢所有帮助。
答案 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'
。