PostgreSQL 判断JSONB数组是否包含特定的元素

文章目录

  • 前言
  • Integer类型的数组
  • char类型的数组


前言

要判断一个JSONB数组是否包含特定的元素,可以使用@>操作符。


Integer类型的数组

-- 是否包含数字3
SELECT '[1, 2, 3, 4, 5]'::jsonb @> '[3]'::jsonb; -- true
-- 是否包含数字3
SELECT '[1, 2, 13, 4, 5]'::jsonb @> '[3]'::jsonb; -- false
-- 是否同时包含数字2和3
SELECT '[1, 2, 3, 4, 5]'::jsonb @> '[2, 3]'::jsonb; -- true
-- 是否同时包含数字2和13
SELECT '[1, 2, 3, 4, 5]'::jsonb @> '[2, 13]'::jsonb; -- false
-- 是否包含数字2或13
SELECT ('[1, 2, 3, 4, 5]'::jsonb @> '[2]'::jsonb) or ('[1, 2, 3, 4, 5]'::jsonb @> '[13]'::jsonb); -- true

char类型的数组

-- 是否包含名字
SELECT '["一碗情深", "石昊", "石中天"]'::jsonb @> '["石"]'::jsonb; -- false
SELECT '["一碗情深", "石昊", "石中天"]'::jsonb @> '["石昊"]'::jsonb; -- true

你可能感兴趣的:(#,PostgreSQL,postgresql)