84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
数据库中有如下数据:
商家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;