我基本上要做的是从我的数据库中的列中获取前三个最常用的值,我已经搜索了一个解决方案,但找不到任何东西。我已经有了获得最常用的代码;
$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中最多使用系统的人那里订购它们并在网页上显示,任何帮助都会很棒!感谢
答案 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中。然后获取前三个值。