簡體   English   中英

Postgres檢查jsonb數組是否不包含值返回空結果集

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM