繁体   English   中英

PHP组mysql由两列选择

[英]PHP group mysql select by two columns

我在MySQL中有此表:

表

我想按浏览器和版本对选择结果进行分组。

想要的输出:

Array
(
    [firefox 3.0] => 2
    [chrome 24.0] => 1
    [ie 9.0] => 2
    [ie 10.0] => 1
)

问题:如何分组选择以获得所需的输出?

注意:表可以包含更多版本的浏览器,因此数组将扩展。

我的尝试:

PHP:

public function get_browsers() {
    $query = "
        SELECT browser, COUNT(browser) AS num 
        FROM table
        GROUP BY browser 
        ORDER BY browser ASC
        ";
    $select = mysqli_query($this->c, $query);
    while ($row = mysqli_fetch_array($select)) {
        $data[$row['browser']] = (int) $row['num'];
    }
    return $data;
}

电流输出:

Array
(
    [firefox] => 2
    [chrome] => 1
    [ie] => 3
)
public function get_browsers() {
    $query = '
        SELECT   browser, version, COUNT(*) AS num 
        FROM     table
        GROUP BY browser, version
    ';
    $select = mysqli_query($this->c, $query);
    while ($row = mysqli_fetch_array($select)) {
        $data[$row['browser'].' '.$row['version']] = (int) $row['num'];
    }
    return $data;
}
SELECT concat(browser," ", version) as browser, COUNT(browser) AS num 
        FROM table
        GROUP BY browser, version 
        ORDER BY browser ASC

诀窍是将version添加为组条件;)

SELECT browser, CONCAT('browser', 'version') as bv COUNT(browser) AS num 
        FROM table
        GROUP BY bv 
        ORDER BY browser ASC
        ";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM