繁体   English   中英

进行Mysql查询,以查找紧接另一个数据的数据(在RoR中)

[英]Make a Mysql query that finds data just before another (in RoR)

我正在向MySql进行此查询

Image.find( :all,
     :conditions => ["created_at > ? && approved = 1", @image.created_at],
                            :order => "created_at DESC", :limit => 5)

但是,我想在给定图像创建之前创建图像。 现在,它从列表顶部返回一个图像列表,这些图像在该图像之前创建了很多。 我怎样才能做到这一点?

您当前的查询将找到任何比@image更新的图像,因为您使用的是>。 您需要确定要查看的范围。.您认为“刚好在”什么时间范围? 分钟? 秒?

要查找在@image的5分钟内创建的所有图像,请尝试:

Image.find(:all, :conditions => ["(created_at > ? and created_at < ?) and approved = 1", @image.created_at.advance(:minutes => -5), @image.created_at]) 

我的解决方案更像是一种骇客,但我不确定是否有更好的解决方案。 我设置了:order =>“ created_at ASC” ...然后反转了结果数组,得到了我想要的响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM