3

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

没关系,但是对于工作表,我需要将这些替换为“foo”。如何?

高度赞赏所有帮助。

4

3 回答 3

10

空还是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`
于 2009-03-24T14:49:16.030 回答
3

只需使用“IFNULL”:

SELECT IFNULL(col1,'foo')
FROM mytable
于 2009-03-24T14:49:44.580 回答
2

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

SELECT COALESCE(column,'foo')

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

于 2009-03-24T14:49:45.500 回答