嗨,团队我正在尝试从 postgres 获取多个 id。所以这里我的要求是我有多个 id,因此所有 id 都存储在 jsonb 类型的规则列的规则集表中。因此,当我尝试从规则集表中获取这些 id 时,我无法获取,所以我运行的查询是
SELECT * FROM rulesets
Where rules IN('2c084b4e-9658-4f50-afe4-a0a820d1d51d', '23de26ef-c3aa-4f31-81dd-1b63e1e2f699',
'7a1af945-c5bd-4709-b5f3-24180398da7d', '665ecd7e-900a-4b30-b6da-19ff7a0068b3')
所以在运行此查询时我遇到此错误
错误
ERROR: Token "2c084b4e" is invalid.invalid input syntax for type json ERROR: invalid input syntax for type json SQL state: 22P02 Detail: Token "2c084b4e" is invalid. Character: 40 Context: JSON data, line 1: 2c084b4e...
这里因为它的 jsonB 类型我已经用文本进行了类型转换,但结果是空的。因此,在这里请帮助我给出正确的查询以从规则集表中获取多个规则。谢谢你
你可以试试这个
SELECT * FROM rulesets
WHERE EXISTS (
SELECT 1 FROM jsonb_array_elements_text(rulesets.rules) AS elem
WHERE elem.value IN ('2c084b4e-9658-4f50-afe4-a0a820d1d51d',
'23de26ef-c3aa-4f31-81dd-1b63e1e2f699',
'7a1af945-c5bd-4709-b5f3-24180398da7d',
'665ecd7e-900a-4b30-b6da-19ff7a0068b3')
);