Mysql Alias中的自定义数组索引

时间:2013-02-01 10:02:40

标签: php mysql

我想知道是否可以将Mysql查询的记录列入自定义数组 就像我做的那样

SELECT CAT.catgryname,count(JB.knifeid) AS total 
FROM jbs AS JB 
LEFT JOIN krgstrs AS KR ON KR.id = JB.knfid 
LEFT JOIN accnts AS ACC ON ACC.job_id = JB.id 
LEFT JOIN catgor AS CAT ON CAT.id = KR.subctid
WHERE JB.usrid =xxx  
GROUP BY CAT.catgryname

它给了我

[0] => Array
        (
            [CAT] => Array
                (
                    [categoryname] => Fridge Magnet
                )

            [0] => Array
                (
                    [total] => 22
                    [MNTH] => Jan
                )

        )

我想为嵌套在里面的第二个数组(如

)设置自定义索引而不是0
[0] => Array
        (
            [CAT] => Array
                (
                    [categoryname] => Fridge Magnet
                )

            [DET] => Array
                (
                    [total] => 22
                    [MNTH] => Jan
                )

        )

请注意DET而不是0。

我试过

SELECT CAT.catname,count(cat.id) as DET.total

但它会抛出错误,因为我认为它将DET解释为此处的表格。 谢谢大家。

1 个答案:

答案 0 :(得分:1)

我不会在DB-Side上这样做。 但是我不知道你是如何获得数组的(使用mysqlimysql PHP扩展)。无论如何,正如在评论中指出的那样,只需在PHP端执行此操作。

尝试使用此功能($results是您所描述的数组 - 索引为CAT0

$newArray = array();
foreach($results as $result) {
    $newArray[] = array(
        'CAT' => array(
            'categoryname' => $result["CAT"]["categoryname"]
        ),
        'DET' => array(
            'total' => $result[0]["total"],
            'MNTH' => $result[0]["MNTH"]
        )
    );
}

然后你去了$newArray