1

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

现在,问题:

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

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

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

4

2 回答 2

5

尝试这个:

SELECT title,address,zip,city,CONCAT(
    COALESCE(telefon1,''), ',',
    COALESCE(telefon2,''), ',',
    COALESCE(telefon3,'')) as phone
于 2011-09-23T08:15:58.397 回答
1

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

select ..., 
    concat(ifnull(telefon1,''),',',ifnull(telefon2,''),',',ifnull(telefon3,'')) as phone
于 2011-09-23T08:16:35.027 回答