所以我有一個 Postgres SQL 表,其中有一列型別為 jsonb 陣列。或多或少看起來像這樣:
[{"adi": "cat", "status": "ACTIVE"}, {"adi": "dog", "status": "ACTIVE"}, {"adi": "bird", "status": "INACTIVE"}]
[{"adi": "fish", "status": "ACTIVE"}, {"adi": "dog", "status": "ACTIVE"}, {"adi": "reptile", "status": "ACTIVE"}]
所以我想在第 2 列中選擇只有狀態為 ACTIVE 的動物的行。
關于如何去做的任何想法?
謝謝!
uj5u.com熱心網友回復:
假設只有兩個值,ACTIVE并且INACTIVE您可以使用 SQL JSON/Path 運算式:
select *
from the_table
where not the_column @@ '$[*].status == "INACTIVE"'
另一種選擇是包含運算子 @>
select *
from the_table
where not the_column @> '[{"status": "INACTIVE"}]'
這將回傳所有不包含狀態為 INACTIVE 的行
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/415496.html
標籤:
上一篇:優化資料庫查詢
下一篇:永遠不應該顯示第一行結果
