我有两个名为major和minor的列,我正在尝试对它们进行大于和小于查询的操作它们代表不同的版本所以对于版本2.1,2在主列,1在次列我怎样才能做这些查询?我想避免创建一个新的专栏。
问题是,如果我查询Model.where('major > ? and minor > ?', 3, 4),我将不会得到4.1或5.2,因为未成年人小于4。
我使用的是Rails3.2和Ruby1.9而且,版本不会比number.number(例如2.9或4.3)复杂得多,所以让我们假设它们都是那样的风格。

最佳答案

我认为正确的SQL查询如下:

major > :major -- check for bigger major
OR (major = :major AND minor > :minor) -- check within the same major

您可以在activerecord中对placeholder conditions,使用它,尽管您可能应该删除注释(行中--后面的部分)。
例子:
MyProductWithVersion.where('major > :major OR (major = :major AND minor > :minor)',
  major: 2, minor: 1)

关于ruby-on-rails - 通过Rails中的两列版本号查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30530956/

10-12 05:36