我正在寻找以下sql代码的活动记录版本:
select *
from users
where (details->'email') is not null
假设我的用户模型有一个叫做详细信息的json字段,有些记录会有一个电子邮件键值,有些则不会。我正在尝试查询具有电子邮件密钥值的用户记录。我尝试使用以下内容,User.where(“details->'email'不为空”),但我的终端打印出来:
PG::UndefinedFunction: ERROR: operator does not exist: json -> boolean
我找到了这个SO帖子,试图做相反的查询,但想法是一样的。如果有人可以向我展示查询json密钥存在或不存在的Active Record版本,我将非常感激。
答案 0 :(得分:6)
这适用于为用户提供电子邮件密钥:
User.where("(details->'email') is not null")
这适用于没有电子邮件密钥的用户:
User.where("(details->'email') is null")