一尘不染

获取json列键为null的记录

json

我有users带json列的表details

我想获取所有用户记录,其中details [“ email”]为null或电子邮件密钥不存在。

这不起作用:

SELECT users.* FROM users where details->'email' IS NOT NULL;

ERROR: operator does not exist: json -> boolean


阅读 230

收藏
2020-07-27

共1个答案

一尘不染

使用括号()。看起来像编译器试图看到它details->('email' IS NOT NULL)。因此,您可以像这样修复它:

select *
from users
where (details->'email') is not null

[sql fiddle demo](http://sqlfiddle.com/#!15/155d9/6)

实际上,要获取其中 details [“ email”]为null或电子邮件密钥不存在的记录 ,可以使用以下查询:

select *
from users
where (details->>'email') is null
2020-07-27