[英]Postgres check if jsonb array not contains value returns empty result set
需要檢查jsonb列是否包含值。 Jsonb字段是一個簡單的數組:
ALTER TABLE task ADD COLUMN worker_ids jsonb;
UPDATE task SET worker_ids = '["1", "2"]' WHERE ...
然后嘗試運行查詢以檢查其中是否包含具體值:
查詢哪個檢查jsonb是否包含值-工作正常並返回正確的行集
SELECT * FROM task WHERE worker_ids ? '1'
但是,當我在where條件查詢中添加NOT
,根本不返回任何內容:
SELECT * FROM task WHERE NOT worker_ids ? '1'
我有什么問題嗎?
https://www.postgresql.org/docs/current/static/functions-comparison.html
當任一輸入為null時,普通比較運算符將產生null(表示“未知”),而不是true或false。 例如,7 = NULL和7 <> NULL都會產生null。 如果此行為不合適,請使用IS [NOT] DISTINCT FROM謂詞:
就像是:
SELECT * FROM task WHERE (worker_ids ? '1') is distinct from true
應該管用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.