用空值连接字段

时间:2011-09-23 08:11:39

标签: mysql concat

开始说“是的,我知道我的桌子不符合1NF。” 我正在处理一些旧的东西,而且无法改变它。 所以,请不要对此发表评论。

现在,问题是:

select title,address,zip,city, concat(telefon1,',',telefon2,',',telefon3) as phone

这个问题是,它可以正常工作,直到concat中的一列为空或空。 如果是,那么我得到电话栏的Null结果。 如果所有三个都有值,那么一切都按预期工作。

我怎样才能克服这个问题?

2 个答案:

答案 0 :(得分:4)

试试这个:

SELECT title,address,zip,city,CONCAT(
    COALESCE(telefon1,''), ',',
    COALESCE(telefon2,''), ',',
    COALESCE(telefon3,'')) as phone

答案 1 :(得分:1)

ifnull(...,'')中的每个电话栏包裹起来,将null变为空白。

select ..., 
    concat(ifnull(telefon1,''),',',ifnull(telefon2,''),',',ifnull(telefon3,'')) as phone