当前位置: 首页 > 知识库问答 >
问题:

如何使用LIKE on JSONB数组的元素?

郜玉石
2023-03-14
SELECT
    UNNEST( column_jsonb[] )
FROM
    table1
WHERE
    UNNEST( column_jsonb[] ) ->> 'member_type' LIKE '%member%'

的参数不能返回集合

怎么把这件事做好?

共有1个答案

仲孙昊焱
2023-03-14

如果它确实是JSONB[]列:

SELECT * -- or whatever
FROM   t, unnest(jsonb_col) j
WHERE  j->>'member_type' LIKE '%member%';

这是一个隐式的横向交叉联接

如果它是普通jsonb列中的JSON数组(更有可能):

SELECT *
FROM   t1, jsonb_array_elements(jsonb_col) j
WHERE  j->>'member_type' LIKE '%member%';
    null
 类似资料:
  • 我已经创建了一个的数组: 我的问题是现在如何访问其中一个数组的元素。例如,我可以通过以下方式访问(或在示例打印中)整个数组元素: 但是如何访问所拥有的数组中的第一个元素呢?我尝试了所有方法,比如,但当数组是链接列表的元素时,我不知道如何访问数组中的元素。

  • 如何定义条件数组元素?我想做这样的事情: 这按预期工作,并导致,但如果我将设置为

  • 问题内容: 我有一个公式重新调整数组作为示例。我想要的是运行一个循环或其他可以让我回来的选项-仅提供唯一值。如何使用ios Swift执行此操作? 问题答案: 只需使用一组: 如果您关心订单: 使用此扩展名,该扩展名使您可以在保留顺序的同时删除any的重复元素:

  • 问题内容: 我读过这篇文章和同一个人的这篇文章,说您无法更新数组元素。 我还阅读了最近的一篇文章,有人说可以用某种方式完成此操作,但是我在文档中都无法获得有关stackoverflow的任何信息。 有什么办法可以解决这个问题?谢谢! 问题答案: 实际上,写这些答案的“家伙”是我:)那时,还没有一种更新数组元素的方法。只能存储数组,而 不能 更新数组成员。 现在,在更新文档时,您可以将第二个参数传递

  • 我已经阅读了尽可能多的关于如何在MongoDB中正确更新数组中的元素的文章(比如这篇:Mongoose,更新对象数组中的值),并认为我已经遵循了所有的建议,但我仍然犯了错误,如果有人能发现我的错误,我将非常感激,因为我已经试着调试了几个小时! 我特别遇到的问题是findOneAndUpdate调用似乎只是更新“inventureItems”数组中的第一个元素,不管它是否匹配我对特定元素的查询。 我