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