从数据库中将最常用的值存储在数组中

时间:2013-05-21 15:25:50

标签: php mysql pdo

我基本上要做的是从我的数据库中的列中获取前三个最常用的值,我已经搜索了一个解决方案,但找不到任何东西。我已经有了获得最常用的代码;

 $mostFrequentUser = $db->query("SELECT emailFrom FROM details group by emailFROM having count(*) = (SELECT count (*) FROM details group by emailFrom ORDER BY count(*) desc LIMIT 1)");
 $frequent = $mostFrequentUser->fetchColumn();

所以我可以从1-3中最多使用系统的人那里订购它们并在网页上显示,任何帮助都会很棒!感谢

3 个答案:

答案 0 :(得分:1)

尝试以下

SELECT emailFrom 
FROM (
    SELECT emailFrom, COUNT(emailFrom) AS myCount
    FROM details
    GROUP BY emailFROM 
    ORDER BY myCount DESC
    LIMIT 3
    ) temp

答案 1 :(得分:0)

您只是为第一个结果提取列。您想使用fetchAll()或迭代光标。

$frequent = $mostFrequentUser->fetchAll(PDO::FETCH_COLUMN);

如上所述,还要将限制从1更改为3.

答案 2 :(得分:0)

按(就像你一样)做一个组,将计数别名为“n”,然后将select包含在你用n命令的另一个select中。然后获取前三个值。