sử dụng dấu ngoặc nhọn ()
. Có vẻ như trình biên dịch cố gắng xem nó giống như details->('email' IS NOT NULL)
. Vì vậy, bạn có thể sửa nó như thế này:
select *
from users
where (details->'email') is not null
sql fiddle demo
trên thực tế, để lấy các bản ghi trong đó chi tiết ["email"] trống hoặc khóa email không tồn tại , bạn có thể sử dụng truy vấn này:
select *
from users
where (details->>'email') is null
như được mô tả trong câu trả lời này.