2016-12-07 40 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

相关问题