PostgreSQL检查JSON字段包含

时间:2019-04-07 19:34:23

标签: json postgresql

我有一些json结构,请尝试检查string是否包含某些值? 我需要检查,因为单词包含222。

例如:

{
    "words": "111, 222"
}

2 个答案:

答案 0 :(得分:0)

您可以使用LIKE

SELECT ', ' || ('{"words": "111, 222"}'::json->>'words') || ', ' LIKE '%, 222, %';

regexp_split_to_array,并且数组包含运算符@>

SELECT regexp_split_to_array('{"words": "111, 222"}'::json->>'words', ', ') @> ARRAY['222'];

EXISTSregexp_split_to_table()

SELECT EXISTS (SELECT *
                      FROM regexp_split_to_table('{"words": "111, 222"}'::json->>'words', ', ') stt (c)
                      WHERE stt.c = '222');

db<>fiddle

答案 1 :(得分:-1)

如果要破解222是否可用的字符串,请尝试使用includes函数

OBJECT_NAME.words.includes(“ 222”); //它给你真实的

OBJECT_NAME.words.includes(“ 22222”); //它给你虚假