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