ruby-on-rails - 查找比使用 hstore 和 rails 更大的值

标签 ruby-on-rails ruby rails-postgresql pg hstore

我在 rails 中使用 hstore 和 postgresql 存储产品信息,包括产品的发布年份。现在我希望能够查询特定年份之前或之后发布的所有产品。我可以使用以下方法在“数据”hstore 列中查询包含年份字段的所有记录:

Product.where("data ? 'year'")

由于 hstore,年份值存储为字符串。因此,我尝试将年份类型转换为整数,以查找年份大于/小于 X 的记录:

Product.where("(data ? 'year')::int > 2011")

但是,这似乎不起作用,我返回的结果总是空数组。我究竟做错了什么?还有另一种方法吗?

最佳答案

我认为您正在寻找的运算符是 ->

所以,试试这个:where("(data -> 'year')::int > 2011")

(来自jO3w的评论)

关于ruby-on-rails - 查找比使用 hstore 和 rails 更大的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19242677/

相关文章:

sql - 如何查找带有多个标签的帖子

ruby-on-rails - Rails 在初始迁移期间在 schema_migrations 表中查找不存在的 ID 列

ruby-on-rails - heroku rake db :reset 的问题

ruby-on-rails - Rails 4 assets.precompile

mysql - 通过homebrew安装mysql有什么问题

ruby - 按 ruby​​ 中数组的元素属性排序

Ruby 正则表达式匹配,除非转义为\

ruby-on-rails - 升级到 Rails 5 问题 - 现有应用程序

ruby-on-rails - ruby install Rails 出现错误 ---无法构建 gem native 扩展。(Windows 平台)

ruby-on-rails - RSpec - stub 模块中的#super调用#prepend monkeypatch