2014-01-28 68 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