mysql group by在某些条件和列值上

时间:2015-01-14 18:29:43

标签: php mysql

有4种接收方式。 1)交付2)提货3)mobile_topup 4)bank_deposit

如果有2个移动充值,我只需要一个。但是,如果有2种传递方法,那么我需要它们。为此,我创建了这个查询:

$clause = "SELECT id FROM beneficiary_payment_info
           GROUP BY IF(ben_payment_method='mobile_topup', '', ben_payment_method)";

但是,问题是,它也是按照交付方式分组的。我不想要那个。 现在,我在数据库中有2 mobile_topup2 deliverybank deposit

我需要1 mobile_topup2 delivery1 bank deposit

我只是想知道这个查询是否可行,或者我需要在php中进行此操作?

修改

临时,在php我有这个解决方案。但是,它看起来并不可靠。

$mobile_count = array();
for($i=0; $i<count($data); $i++){
    if($data[$i]['ben_payment_method']=='mobile_topup'){
        //unset($data[$i]);
        array_push($mobile_count, $i);
    }
}
if(count($mobile_count) > 1){
    for($i=0; $i<count($mobile_count)-1; $i++){
        unset($data[$mobile_count[$i]]);
    }
}

1 个答案:

答案 0 :(得分:1)

$clause = "SELECT id FROM beneficiary_payment_info
               GROUP BY IF(ben_payment_method='mobile_topup', ben_payment_method, id,)";