2014-01-28 67 views
0

我有這個表在MySQL中進行選擇:PHP MySQL的組由兩列

table

我想通過瀏覽器和版本組選擇的結果。

通緝輸出:

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 
) 

回答

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; 
} 
1
SELECT concat(browser," ", version) as browser, COUNT(browser) AS num 
     FROM table 
     GROUP BY browser, version 
     ORDER BY browser ASC 

訣竅是添加version作爲組準則;)

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

這將輸出字符串'browserversion'每個'bv'條目 – helle