mysql选择,与分隔符连接

时间:2015-01-12 07:32:00

标签: mysql select concatenation

我的数据如下:

id   name   age   gender
1    abc          M

'age'值为null。

我希望将列值与分隔符'\ n'连接,如果一个列值为null,则还使用'\ n'来表示它。

我试过了concat_ws,但它只返回:

1\nabc\nM

我想要的是:

1\nabc\n\nM

在'abc'之后它应该是2'\ n'。

我如何达到我的要求?

3 个答案:

答案 0 :(得分:0)

select concat_ws('\n', id, coalesce(name,''), coalesce(age,''), coalesce(gender,''))
from your_table

答案 1 :(得分:0)

不需要使用concat_ws,如果它为null,它将不会连接该值。使用concat + ifnull函数

select concat('\n', ifnull(id,''),ifnull(name,''),ifnull(age,''),ifnull(gender,'')) 
from your_table

答案 2 :(得分:0)

您应该使用ifnull(column_name,'')将空列替换为空字符并尝试使用concat_ws。

select concat_ws('\n',id,name,ifnull(age,''),gender) from table1; 

SQL小提琴链接: http://sqlfiddle.com/#!2/12074/10