Pat*_*ryk 0 sql postgresql json
我有一个带有jsonb 数据列的表,如下所示:
data: {
"categories": [
"Category A",
"Category D"
],
"something": "dsa",
}
Run Code Online (Sandbox Code Playgroud)
我想查询在类别数组(非空交集)中存在一个或多个字符串的行.
让我们假设要检查的这些字符串是"A类"和"B类".
这样的查询怎么样?
这是一个类似的查询,除了它检查所有提供的字符串是否存在于categories数组中:
SELECT *
FROM table
WHERE data->'categories' @> '["Category A", "Category B"]'
Run Code Online (Sandbox Code Playgroud)
我需要此查询来匹配至少一个字符串,而不是所有字符串.
有一个?|操作员采取jsonb并text[]描述为exists any:
select '["Category A", "Category D"]'::jsonb ?| array['Category A', 'Category B'];
?column?
----------
t
select '["Category A", "Category D"]'::jsonb ?| array['Category Ax', 'Category B'];
?column?
----------
f
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2340 次 |
| 最近记录: |