PDO ORDER BY COUNT

时间:2014-11-08 21:52:56

标签: php pdo

我需要一个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);

1 个答案:

答案 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)