84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
数据库中有如下数据:
商家1 001商家1 002商家1 003商家2 001商家2 002商家2 003商家3 001商家3 002商家3 003......
希望组合成:商家1->array(001, 002, 003), 商家2->array(001, 002, 003)......这种格式的数据
是否可以用sql查询出来,或者查询出全部数据后怎样高效率的组合?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
select 商家字段,group_concat(DISTINCT 产品字段) form 表 group by 商家字段;然后格式化下数据。
数量大不建议group,会很影响速度。建议全部查询然后php处理数组eg:// 获取全部数据得到数组如下$data = array(
array( 'seller_id' => '商家1', 'product_id' => '001' ), array( 'seller_id' => '商家1', 'product_id' => '002' ), array( 'seller_id' => '商家1', 'product_id' => '003' ), array( 'seller_id' => '商家2', 'product_id' => '001' ), array( 'seller_id' => '商家3', 'product_id' => '001' ), array( 'seller_id' => '商家3', 'product_id' => '002' ), array( 'seller_id' => '商家3', 'product_id' => '003' ), );
$result = array();foreach($data as $value) {
if(empty($value)) { continue; } $result[$value['seller_id']][] = $value['product_id'];
}
var_dump("<pre>", $result);die;
就是得到了你要的数据:
![图片上传中...]
select seller_id,product_id form table group by seller_id limit 0,10; 试试这样
@koreyoshi 翻译过来就是这样:SELECT seller_id,GROUP_CONCAT(product_id) FROM product GROUP BY seller_id;
select 商家字段,group_concat(DISTINCT 产品字段) form 表 group by 商家字段;然后格式化下数据。
数量大不建议group,会很影响速度。建议全部查询然后php处理数组
eg:
// 获取全部数据得到数组如下
$data = array(
$result = array();
foreach($data as $value) {
}
var_dump("<pre>", $result);die;
就是得到了你要的数据:
![图片上传中...]
@koreyoshi 翻译过来就是这样:
SELECT seller_id,GROUP_CONCAT(product_id) FROM product GROUP BY seller_id;