簡體   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