我需要一个PDO查询才能获得前20个最常搜索的字词(返回搜索字词及其使用次数)。
这个SQL完全符合我的要求(在PhpMyAdmin中测试)。 。
SELECT searchterm, COUNT(*) AS rowcount
FROM table
GROUP BY searchterm
ORDER BY rowcount DESC
LIMIT 20
。 。 。但是PDO总是将rowcount返回为1。
我已阅读大量相关帖子,但似乎无法针对此问题调整这些解决方案(可能是因为我不太了解PDO)。
我没有想要发布我的PDO代码,因为我使用的是我已经构建的包装器(大多数都很好用)并认为我需要从头开始解决这个问题。 。 。但在这里(从包装中消毒)。 。
$query = $this -> db -> prepare (
SELECT searchterm, COUNT(*) AS rowcount
FROM table
GROUP BY searchterm
ORDER BY rowcount DESC
LIMIT 20);
$query -> execute ();
$return = $query -> fetchAll(PDO::FETCH_ASSOC);
答案 0 :(得分:0)
你能告诉我你的输出吗?我会编辑答案。 您可以轻松地使用PDO按第一列分组:
$query = $this->db->prepare("SELECT `searchterm`, COUNT(*) AS `rowcount` FROM `table` ORDER BY rowcount DESC LIMIT 20");
$query->execute();
$return = $query->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP);
只需告诉我您的var_dump($return)