second = Trade.with_currency(currency).h24.order('id desc').limit(1).offset(1).try(:price)
first = Trade.with_currency(currency).h24.order('id desc').first.try(:price)
我想得到第一排和第二排的价格。第一个是工作,但我有问题得到第二行。通过上述查询,我得到了回复。
当我直接在mysql中查询第二行时,它正在工作:
SELECT `trades`.* FROM `trades` WHERE `trades`.`currency` = 5 AND (created_at > '2014-01-11 16:20:06') ORDER BY id desc LIMIT 1 OFFSET 1;
答案 0 :(得分:0)
offset(1)
在语句
first
它会像
second = Trade.with_currency(currency).h24.order('id desc').limit(1).offset(1).first.try(:price)
答案 1 :(得分:0)
prev = Trade.with_currency(currency).order('id desc').limit(1).offset(1).first.try(:price)
这是解决方案 - 我添加了选择第一个偏移1的结果。
答案 2 :(得分:0)
如果您只需要值:
Trade.with_currency(currency).h24.order('id desc').pluck(:price).first(2)
pluck
方法仅提取值,first(2)
用于提取前两个值。