如果NULL为NULL,如何连接数据

时间:2014-11-12 15:07:32

标签: mysql

我有一个如下所示的表

mysql> desc document;

+-----------------+--------------+------+-----+-------------------+----------------+
| Field           | Type         | Null | Key | Default           | Extra          |
+-----------------+--------------+------+-----+-------------------+----------------+
| T1              | varchar(50)  | YES  |     | NULL              |                |
| T2              | varchar(50)  | YES  |     | NULL              |                |
| T3              | varchar(50)  | YES  |     | NULL              |                |
| T4              | varchar(50)  | YES  |     | NULL              |                |
| T5              | varchar(50)  | YES  |     | NULL              |                |
======================================================

这是文档中的数据

mysql> select * from document ;

+-------------+----------------------+-------------+-------------+------+------+
| T1                   | T2          | T3          | T4   | T5   |
+-------------+----------------------+-------------+-------------+------+------+
| Chips And Chocolates | Yummy Chips | NULL        | NULL | NULL |
| Chips And Chocolates | Yummy Chips | Lemon Masti | NULL | NULL |
+-------------+----------------------+-------------+-------------+------+------+

A Row可以填充所有T1,T2,T3,T4,T5

或者它可以有NULL值

是否可以将数据组合成逗号分隔,如果它为空

例如

在第一种情况下

Chips And Chocolates,Yummy Chips 

在第二种情况下

Chips And Chocolates,Yummy Chips, Lemon Masti

谢谢。

1 个答案:

答案 0 :(得分:3)

这应该有效:

SELECT CONCAT_WS(',', T1, T2, T3, T4, T5)
FROM documents

另请参阅CONCAT_WS()的文档,如果它是null,它的优势在于它会跳过一个值。