gpt4 book ai didi

postgresql - 如何将 postgres json 列表转换为全小写的 postgres 数组

转载 作者:行者123 更新时间:2023-11-29 12:49:37 31 4
gpt4 key购买 nike

我有一个名为“stuff”的表,其中有一个名为“tags”的 json 列,用于存储标签列表,还有一个名为“id”的列,它是表中每一行的主键。我正在使用 postgres 数据库。例如,一行看起来像这样

   id | tags
---|------
1 | ["tag1", "tag2", "tag3"]

我正在尝试编写一个函数来获取具有与名为“s_tag”的输入标签变量相匹配的标签的行。但是,我想将所有标签都转换为小写,以便标签匹配不区分大小写。

我编写了以下测试查询:

     select id from stuff where '"tag1"' = any(select jsonb_array_elements(tags));

此查询返回所有具有名为“tag1”而非“TAG1”标签的行的 ID。

然后我读了this post , 所以我试过了

     select id from stuff where '"tag1"' like any(select jsonb_array_elements(tags));

但是我得到了这个错误:

    ERROR: operator does not exist: unknown ~~* jsonb

那么如何将json列表转换为小写的postgres数组呢?或者是否有其他方法以不区分大小写的方式搜索标签列表?

最佳答案

您可以获得文本形式的结果而不是 json:

select id 
from stuff
where 'tag1' = any(select lower(jsonb_array_elements_text(tags)));

关于postgresql - 如何将 postgres json 列表转换为全小写的 postgres 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57514709/

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