2016-12-07 63 views
0

我寫的PHP應用程序,它讓用戶的瀏覽器的名稱:如何通過頻繁值對「GROUP BY」查詢結果進行排序?

+----------+------------+ 
| name  | browser | 
+----------+------------+ 
| Puffball | firefox | 
| Chirpy | edge  | 
| Whistler | chrome  | 
| Slim  | firefox | 
| Claws | edge  | 
| Fluffy | chrome  | 
| Fang  | chrome  | 
| Bowser | safari  | 
| Buffy | chrome  | 
+----------+------------+ 

我用這個SQL查詢來獲取與「GROUP BY」的瀏覽器,其結果是:

$sql = "SELECT * FROM views WHERE linkid = '$string' GROUP BY browser"; 

array (size=4) 
    0 => string 'firefox (length=7) 
    1 => string 'edge' (length=4) 
    2 => string 'chrome' (length=6) 
    3 => string 'safari' (length=6) 

我想按照頻繁值對此結果進行排序,如下所示:

array (size=4) 
    0 => string 'chrome (length=6) 
    1 => string 'edge' (length=4) 
    2 => string 'firefox' (length=7) 
    3 => string 'safari' (length=6) 

tanx!

+2

_i使用此SQL query_結果* *我看不到任何查詢**向我們顯示您正在使用的查詢,數組不是查詢 – RiggsFolly

+0

至少有正派問題的正確問題。 – Rahul

+0

坦克@RiggsFolly,現在確定 – moosavi

回答

1

爲了獲得通過瀏覽器輸入表中提到的頻率排序,你需要添加這樣一個數,然後ORDER BY計列

SELECT *, count(browser) as frequency 
FROM views 
WHERE linkid = '$string' 
GROUP BY browser 
ORDER by frequency 
0

使用此下面的SQL查詢

SELECT * FROM `table` group by browser order by browser asc 

使用PHP數組排序

排序($瀏覽器);

+0

這不會按表中發生的瀏覽器類型的頻率排序。它只會依靠瀏覽器名稱。由於在瀏覽器上進行了分組,PHP排序完全是IRRELLEVANT,因此每個瀏覽器只能獲得一行 – RiggsFolly

相關問題