2010-08-05 118 views
1

我有一个名为problemTBL表,其中包含以下显示重复记录

problem_id Autoincrement,Pk 
passenger_id, accept duplicate values 
problem_name, problem description 

领域的这些样本记录:

Problem_id passenger_id problem_name 
1    22   NO Air condition 
2    22   Dirty Seats 
3    24   Driver Not helped 
4    22   Old Age Car 
5    23   Old Age Driver 
6    22   Very speed driving 

现在我想找回像

["NO Air condition","Dirty Seats","Old Age Car","Very speed driving","","","","","","","","","","",""] passenger_id 22 

["Driver Not helped","","","","","","","","","","","","","",""] passenger_id 24 
纪录

passenger_id problem_name 
22    NO Air condition |=| Dirty Seats |=| Very speed driving |=|Old Age Car 
24    Driver Not helped 
23    Old Age Driver 

查询可能吗?

喜的事,我做迁移,

目前我现在保存在各个所有的问题,我现在所做的迁移, 我希望将所有问题的特定客户到一个单列,

这是一个客户可以提高标准的高达15只(对于投诉,我们有seprate形式,还有我们提出一些问题,他们只需选中并提交..)

因此,我们已经清楚地决定,只有15的问题,

所以,一行一个客户,

,现在是最新的兼容格式有15个投诉,如果他们选择的,那么这个问题将检查其他空VAL将插入,

虽然submiting形式我只是交所有数值为json_encoded然后我插入此JSON到表...

明白了我的观点......

对于未来的投诉,我做节目很好,

但过去compliants IW蚂蚁迁移,让我张贴的问题在这里,,,

+0

为什么你有这些:' “”, “”, “”, “”, “”, “”, “”, “”,” “,”“,”“,”“,”“,”“'? – NullUserException 2010-08-05 17:15:19

+0

@NullUserException看起来像OP正在返回一组15个问题 – 2010-08-05 17:16:35

+0

我觉得你会更好地修改你的表格布局......而不是写这个查询。 – Chris 2010-08-05 17:18:10

回答

1

您可以使用GROUP_CONCAT()聚合来自文本字段多行。

SELECT 
     `passenger_id`, 
     GROUP_CONCAT(`problem_name` SEPARATOR ' |=| ') 
FROM 
    `problemTBL` 
GROUP BY 
    `passenger_id` 

此外,您可能希望增加group_concat_max_len变量。

SELECT查询之前: SET SESSION group_concat_max_len = MAX_BYTES