[英]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.