mysql - Ruby 的分组、计数、重构方式

标签 mysql ruby-on-rails ruby ruby-on-rails-2 ruby-1.8.7

我有一个表,用于存储用户在搜索字段中输入的内容。我编写了一个操作来显示最流行的搜索以及搜索的次数。为此,我在 Controller 中编写了以下 sql 查询...

SELECT `query`,
       COUNT(`query`) AS `query_count`
FROM  `searches`
WHERE [foo things]
GROUP BY `query`
ORDER BY `query_count` DESC

...并将其作为变量传递到 Search.find_by_sql(query) 中,将其保存为实例变量,并使用 every block 迭代数组并打印出 搜索['query_count']。这正是我想要的,但我很想知道如何以 Ruby 方式执行此操作,因为我知道在 Controller 中只使用 sql 查询是不好的做法。我知道如何将 WHERE 条件放入named_scopes,但我不知道如何在 Ruby 中复制查询的其余部分。

我使用的是 mysql、ruby 1.8.7、rails 2.3.15。

最佳答案

应该很简单:

Search.select(:query, 'count(query) as query_count').where(foo things).group(:query).order('query_count DESC')

关于mysql - Ruby 的分组、计数、重构方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22619700/

相关文章:

javascript - Assets 未出现在开发环境中

ruby - 后续迁移。我的迁移文件中的 IP 地址应该是什么?

php - 无法使用 jQuery AJAX 获取从 PHP-MYSQL 生成的数据的值

MySQL用户变量不增加

javascript - Rails 窗体 : after click - disable link

ruby - 将 jQuery 翻译成 Watir

ruby-on-rails - 无法解释的 "can' t修改卡住对象”异常

mysql - 过程参数问题 - Mysql 5.1 SQL Error 1064

mysql - 如何在 MAMP 中使用 phpMyAdmin 在 MySQL 中显示关系 View

ruby-on-rails - 如何从 Rails 应用程序中的不同 View 访问模型数据