簡體   English   中英

Postgresql:如何對 json 數組執行 LIKE 查詢?

[英]Postgresql: How to perform LIKE query on a json array?

我有一個標簽存儲為 JSONB 列的表。 喜歡:

id   tags
---- ------------------------------
1    ["red", "blue"]
2    ["orange", "light pink"]
3    ["pink", "green"]

我想選擇包含與模式部分匹配的標簽的行——在我的例子中,我想要其中帶有空格的標簽。 類似於SELECT * FROM the_table WHERE tags LIKE '% %' 將數組轉換為文本幾乎可以工作,除了所有匹配項,因為 Postgres 在輸出 JSON 中的逗號后放置一個空格。

使用函數jsonb_array_elements_text().

with my_table(id, tags) as (
values
    (1, '["red", "blue"]'::jsonb),
    (2, '["orange", "light pink"]'),
    (3, '["pink", "green"]')
)

select *
from my_table, jsonb_array_elements_text(tags)
where value like '% %';

 id |           tags           |   value    
----+--------------------------+------------
  2 | ["orange", "light pink"] | light pink
(1 row) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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