如何在rails中查询匹配的列对?

时间:2017-03-31 09:42:19

标签: mysql ruby-on-rails activerecord

我在数据库中有一个电影表,其中包含发布日期的月份和年份的单独列(整数)。

我希望所有电影的发布日期为2016年9月9日至2017年2月。

由于其他不需要的结果,此查询无法正常工作:

__str__

如何查询制作月份和月份对年?

1 个答案:

答案 0 :(得分:1)

以这种方式存储日期是一项非常糟糕的设计决策(如果您不存储实际日期值)。

因此,要么进行数据迁移,要么创建一个日期列,这对于查询来说是微不足道的,或者做一个大屁股条件查询:

SELECT movies.*
FROM movies
WHERE month = 9 AND year = 2016 OR
  month = 10 AND year = 2016 OR
  ...
  month = 2 AND year = 2017

要在activerecord中构建此查询,您可以使用this answer(特定于rails-5)。