Không có toán tử không bình đẳng (hoặc bất bình đẳng) cho kiểu dữ liệu json
nói chung, bởi vì sự bình đẳng rất khó thiết lập. Xem xét jsonb
trong Postgres 9.4 trở lên, nếu có thể. Thêm chi tiết trong câu trả lời liên quan này trên dba.SE (chương cuối):
- Làm cách nào để xóa các phần tử đã biết khỏi mảng JSON [] trong PostgreSQL?
SELECT DISTINCT json_column ...
hoặc ... GROUP BY json_column
không thành công vì lý do tương tự (không có toán tử bình đẳng).
Truyền cả hai mặt của biểu thức thành text
cho phép =
hoặc <>
nhưng điều đó thường không đáng tin cậy vì có thể có nhiều biểu diễn văn bản cho cùng một Giá trị JSON. Trong Postgres 9.4 trở lên, truyền tới jsonb
thay thế. (Hoặc sử dụng jsonb
để bắt đầu.)
Tuy nhiên , cho trường hợp cụ thể này ( đối tượng trống ) nó hoạt động tốt:
select * from test where foo::text <> '{}'::text;