试图找到一种将CONCAT与IF结合的方法 - 或者以其他方式在逗号分隔列表中显示集合标记的文本值 。MySql:Concat IF'ed values
注意:这最终是一个包含10列以上的表格。在这里使用两个来简化。
说我有一个标志的表。如果标志是1
我想显示一些文本值, 否则什么都不是。
origin:
+--+-----+-----+
|# | CHS | ACC |
+--+-----+-----+
|1 | 0 | 1 |
|2 | 1 | 1 |
|3 | 1 | 0 |
|4 | 0 | 0 |
+--+-----+-----+
我想:
+--+----------+
|# | origin |
+--+----------+
|1 | ACC |
|2 | CHS, ACC |
|3 | CHS |
|4 | |
+--+----------+
没有(这等):在这个方向
+--+-----------+
|# | origin |
+--+-----------+
|1 | ACC, |
|2 | CHS, ACC, |
|3 | CHS, |
|4 | , |
+--+-----------+
东西:
SELECT
CONCAT_WS(', ',
IF(CHS = 0, '', 'CHS'),
IF(ACC = 0, '', 'ACC')
) as origin
FROM
origin;
但不能与逗号在空值之间。
这最终是一个有10列的表,我加入了其他基于ID的 。
太好了。这很好。使用'COLUMN_NAME'使它更好。 – Zimzalabim 2013-04-04 19:20:23
非常有用 - 谢谢! – 2016-04-22 11:40:08