GROUP BY子句忽略行和数据

时间:2015-05-22 06:11:39

标签: php mysql

我们知道GROUP BY子句通过指定特定的GROUP BY 'user_id'忽略重复数据来返回数据,但我想这样做GROUP BY忽略表行但我想组合该行的数据在数组中,意味着我想要所有数据但在过滤行中 我想要像

这样的东西
id | name | user_id
-------------------
1    abc     20
2    trt     19
3    sdf     20
4    khg     22
5    fdf     20
6    lnm     22



id | name | user_id
-------------------
1    abc,sdf,fdf     20
2    trt             19
3    khg,lnm         22

2 个答案:

答案 0 :(得分:1)

请尝试此查询。

Select id, GROUP_CONCAT(name), user_id FROM table_name GROUP BY user_id

我已将group_concat用于名称列。

答案 1 :(得分:1)

使用GROUP_CONCAT。试试这个查询 -

SELECT id, GROUP_CONCAT(name) name, user_id FROM students GROUP BY user_id
  

GROUP_CONCAT 函数将一个组中的字符串连接成一个带有各种选项的字符串。

<强>更新

在CakePhp中实现它 -

$driverlocation_data = $this->DriverLocation->find(
    'all',
     array(
     'conditions'=>array('DriverLocation.dispensary_id'=>$dispensary_id),
     'fields' => array('id', 'GROUP_CONCAT(name) name', 'user_id')                                      
     'group'=>array('DriverLocation.driver_id') 
    )
);