繁体   English   中英

ActiveRecord-比较同一行中的两个值

[英]ActiveRecord - Compare two values in same row

我有一张通话数据表,我想查询所有未应答的通话,这意味着通话开始时间等于通话结束时间。 我目前使用下面的普通SQL可以正常工作:

select * from calls where calls.start = calls.end

我想知道是否有使用ActiveRecord查询接口的其他“轨道”方法。 理想情况下,我想在我的“ Call模型中设置一个范围,以将所有未应答的呼叫返回给我。 就像是:

scope :unanswered, -> { where(start: :end) }

上面的方法不起作用,因为Rails将:end视为字符串而不是数据库中的end列。

我使用PostgreSQL作为数据库引擎。

SQL查询

select * from calls where calls.start = calls.end

可以使用如下所示的范围以rails方式完成:

scope :unanswered, -> { where('start = end') }

我认为您可以执行以下操作:

scope :unanswered, -> (end) { where(start: end) }

暂无
暂无

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

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