【发布时间】:2013-12-15 07:08:11
【问题描述】:
我正在使用 TABLE,需要逻辑帮助。
查看以下 URL 以获取表结构和示例数据。
http://sqlfiddle.com/#!2/ece06/2
表架构:
CREATE TABLE test (
ID INTEGER,
NAME VARCHAR (50),
VALUE INTEGER
);
插入数据:
INSERT INTO test VALUES (1, 'A', 4);
INSERT INTO test VALUES (1, 'B', 5);
INSERT INTO test VALUES (1, 'C', 8);
INSERT INTO test VALUES (2, 'D', 9);
INSERT INTO test VALUES (2, 'E', 9);
INSERT INTO test VALUES (3, 'F', 9);
INSERT INTO test VALUES (3, 'G', 9);
INSERT INTO test VALUES (3, 'H', 9);
INSERT INTO test VALUES (3, 'I', 9);
查询:
SELECT ID, GROUP_CONCAT(NAME) AS CODE
FROM test
GROUP BY ID;
输出:
ID CODE
1 A,B,C
2 D,E
3 F,G,H,I
预期输出:
ID CODE CODE CODE CODE
1 A B C NULL
2 D E NULL NULL
3 F G H I
如您所见,查询的输出中包含逗号。目前我们正在使用 PHP 进行字符串连接,它在显示时会拆分!!
还有其他方法可以拆分 RESULT 并在列和同一行中显示每个值吗?结果一样?
注意:每行的代码可能有所不同。
【问题讨论】:
-
那会是什么?在结果集中不可能有不同的列数 - 整个行集只能有相同的列数。但在您的结果中有 2、3 和 4 个逗号连接的值。那么如何“转换为列”呢?
-
检查有问题的更新以获得预期结果。
-
幸运的是,您最多只发布了一个 ID 的 4 个值。