我正在改进一段执行MySQL查询的PHP代码。该查询当前生成一组结果,如下所示:
id summary status date_submitted last_updated value
48 test case 1 30 1313755157 1313755252 Low Yield
48 test case 1 30 1313755157 1313755252 28BK
48 test case 1 30 1313755157 1313755252 Yield
48 test case 1 30 1313755157 1313755252 3
48 test case 1 30 1313755157 1313755252 1
48 test case 1 30 1313755157 1313755252 n/a
Value
将始终不同,但所有其他字段将是相同的值。我想将上面的内容转换成这样的
id summary status date_submitted last_updated value1, value2, value3, value4, value5
48 test case 1 30 1313755157 1313755252 Low Yield 28BK Yield 3 1 n/a
所以每个值都有自己的列。我认为我不需要粘贴获得第一个结果的大量查询?我猜人们可以将结果视为一个表格并从中得出一个查询?如果需要,我会发布原始查询。
非常感谢。
答案 0 :(得分:1)
你无法做到这一点,但你可以用逗号分隔的值列表。看到这个问题:
How to use GROUP BY to concatenate strings in MySQL?
你会写一些类似的东西:
SELECT
id,
summary,
status,
date_submitted,
last_updated,
GROUP_CONCAT(value SEPARATOR ',') as values
FROM
table
GROUP BY
id,
summary,
status,
date_submitted,
last_updated
在这种情况下,值将采用“低收益率,28BK,收益率,3,1,不适用”的值。
答案 1 :(得分:0)
你可以使用一组case和column别名:
Select Case value = 'Low Yield' then 'Low Yield' else NULL END as LowYieldCol,
Case value = 'Yield' then 'Yield' else NULL END as YieldCol,
......
等等