在mysql(+;php)中检索分组元素数组
我需要一些关于这个问题的帮助,到目前为止我有:在mysql(+;php)中检索分组元素数组,php,mysql,Php,Mysql,我需要一些关于这个问题的帮助,到目前为止我有: SELECT * FROM coupons WHERE discount_id = '1' AND client_username = 'Zara' GROUP BY winner_id 桌子是这样的 id client_username winner_id bdate discount_id destroyed 72 zara 1125405534 2012-11-11 03:
SELECT * FROM coupons WHERE discount_id = '1' AND client_username = 'Zara' GROUP BY winner_id
桌子是这样的
id client_username winner_id bdate discount_id destroyed
72 zara 1125405534 2012-11-11 03:34:49 4 0
71 zara 1125405534 2012-11-11 03:34:43 1 0
70 zara 1125405534 2012-11-11 03:34:27 1 0
我想按winner\u id
(它是一个唯一的用户id)对结果进行分组,其中discount\u id
等于某个值,并按bdate
排序,我想我需要用户每次出现的id
和destrocted
值,并计算winner\u id出现的次数,因此,结果需要是一个值(winner_id出现的次数计数)和3个数组(折扣_id、销毁、id)。。但是我不知道如何以我需要的方式来检索这个。谢谢你的帮助 两种基本方法:
foreach($rows as $row) {
$discount_ids = explode(',', $row['discount_ids']);
// ...
}
第二个是更简单的SQL,但更丑陋的PHP。基本上只需选择所有行,然后自己对结果进行预处理。(我推荐前面的解决方案)
foreach($rows as $row) {
$discount_ids = explode(',', $row['discount_ids']);
// ...
}
foreach($rows as $row) {
$results_tree[$row['winner_id']]['num_wins']++;
$results_tree[$row['winner_id']]['discount_ids'][] = $row['discount_id'];
// ...
}