2014-01-28 2 views
0

У меня есть эта таблица в MySQL:PHP группы MySQL выбрать две колонны

table

Я хочу Группирование результатов по браузерам и версии.

Wanted выход:

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

Смежные вопросы