mysql - Rails - Active Record 中不相等

标签 mysql ruby-on-rails ruby ruby-on-rails-3

我想对表执行 SQL 查询。我遇到了无法继续的问题。

如何使用 Active Record 查询列不相等的表 归零?当前的查询如下所示,但它不起作用,因为它给了我一个空值。

no_sweets = CookieJar.where(cookie_id: array_of_cookies, artificial_sweetner: !nil).count

我想获取 id 包含在 array_of_cookies 中且 artificial_sweetner 不为空的糖果数量。

下面的代码工作得很好,但我需要以 Rails 方式使用它,或者说我需要对象来操作。

no_sweets = CookieReportingDb.connection.execute("SELECT count(*) FROM cookie_db_new.cookie_jars where artificial_sweetner is not null and cookie_id IN (#{array_of_cookies.join(', ')})").first

我使用的是 ruby​​ 1.9 和 Rails 3.2。

最佳答案

您可以将 where 子句作为字符串放入 where 调用中:

no_sweets = CookieJar.where("artificial_sweetner is not null").where(cookie_id: array_of_cookies).count

或者在Rails 4中,您可以执行以下操作:

no_sweets = CookieJar.where.not(artificial_sweetner: nil).where(cookie_id: array_of_cookies).count

关于mysql - Rails - Active Record 中不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35587559/

相关文章:

MySQL - 在每个字段中搜索特定字符

mysql - 优化大型 MySQL 表 - 分区?

mysql触发器(更新后插入字段)

php - 使用 sum 和 join

ruby-on-rails - 如何检查 Controller 中私有(private)方法的返回值

ruby-on-rails - 真实逻辑。什么哈希函数?

ruby - 为什么当命令执行某些错误时,我的 pry-byebug 包会给出如此多的输出?

ruby-on-rails - Nokogiri 和 Rails 不会安装。 [Ruby On Rails]

ruby - 使 Ruby 字符串不可变

ruby - 使用 twilio-ruby gem 时收到 RequestError