【发布时间】:2020-06-04 15:11:06
【问题描述】:
我需要检查 jsonb 字段是否可以是数组或字符串。 我拥有的简单数据:
INSERT INTO users (jsonb) VALUES
('{"name":"Henry", "favoritefood_1":["eggs","apples"]}'),
('{"name":"Herald","favoritefood_1":["apples","potatoes"]}'),
('{"name":"Helen", "favoritefood_1":"apples"}');
我应该如何找到喜欢苹果和鸡蛋的用户?我尝试了很多查询,最后一个是:
SELECT * FROM users
WHERE CASE
WHEN jsonb_typeof((jsonb->>'favoritefood_1')::jsonb) = 'array'
THEN jsonb_array_elements((jsonb->>'favoritefood_1')::jsonb) IN ('apples', 'eggs')
ELSE (jsonb->>'favoritefood_1')::jsonb IN ('apples', 'eggs') END
有人可以帮我吗?
【问题讨论】:
标签: sql arrays json postgresql jsonb