gpt4 book ai didi

json - postgresql 使用 LIKE 运算符在 json 数组中选择行

转载 作者:行者123 更新时间:2023-11-29 12:57:15 25 4
gpt4 key购买 nike

我有一张表 user,其中有一个 JSON 字段 user_data。例如这 3 行:

{"name": "John", domain_names: ['john.com', 'lennon.com', 'john.fr']}
{"name": "Foo", domain_names: ['foo.com', 'bar.fr', 'bar.com']}
{"name": "Tirion", domain_names: ['tirion.co.uk']}

我想获取包含一个或多个 .com 域名的 JSON 行(前两行)。我试过这个:

SELECT user_data 
FROM user
WHERE json_array_elements(user_data)->>'domain_names' LIKE '%.com';

但是没用...您知道如何使用 .com 域获取线路吗?

最佳答案

SELECT user_data
FROM "user" u
WHERE EXISTS
(SELECT 1
FROM jsonb_array_elements_text(u.user_data->'domain_names') x(dom)
WHERE dom LIKE '%.com');

顺便说一下,你应该避免像保留字那样命名表(在那种情况下user)。

关于json - postgresql 使用 LIKE 运算符在 json 数组中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39959737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com