获取包含子记录或字段长度的所有记录> 250

时间:2013-05-09 16:06:59

标签: sql ruby-on-rails ruby activerecord

我有Comment模型,其中有许多attachments。我想要返回的是,所有评论都有一个或多个附件记录,或者评论超过250个字符。

如果没有完全用纯SQL编写,我有什么方法可以做到这一点?我正在努力在rails方法中构建一个WHERE子句。它并不像我希望的那么简单:(

理想情况下,我希望这是一个范围,但无论什么工作都很好

3 个答案:

答案 0 :(得分:3)

你可以尝试:

Comment.includes(:attachments).where('attachments.comment_id IS NOT NULL OR LEN(comments.content) > 250')

答案 1 :(得分:0)

WHERE子句应遵循以下伪代码的模式

WHERE Length(Comment_field) > 250
OR EXISTS (Select COMMENT_ID from attachments)

答案 2 :(得分:0)

跳转到irb或rails c(控制台)从命令行执行此操作以获取它然后将其插入。

 c     =  YourCommentModel.where('attachments > ?', 1)
len250 =  c = YourCommentModel.where('attachments.length> ?', 250)
第一个给出大于1的评论,第二个给出评论> 250