我有users带json列的表details。
users
details
我想获取所有用户记录,其中details [“ email”]为null或电子邮件密钥不存在。
这不起作用:
SELECT users.* FROM users where details->'email' IS NOT NULL;
ERROR: operator does not exist: json -> boolean
使用括号()。看起来像编译器试图看到它details->('email' IS NOT NULL)。因此,您可以像这样修复它:
()
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