postgresql jsonb不区分大小写的查询 [英] postgresql jsonb case insensitive query

查看:126
本文介绍了postgresql jsonb不区分大小写的查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一张桌子,像这样:

I have a table like:

CREATE TABLE cityData
(
  item character varying,
  data jsonb
);

它包含类似

ITEM        DATA
test1       [{"rank":"1", "city":"New York"},{"rank":"3", "city":"Sidney"}] 
test2       [{"rank":"2", "city":"NEW YORK"},{"rank":"4", "city":"New Delhi"}] 

我需要获取城市为纽约"的不同json对象的数量 我正在使用以下查询

I need to get number of distinct json objects where city is 'New York' I am using the following query

SELECT  * FROM   cityData t
WHERE ( data @> '[{"city":"New York"}]')
and t.item ilike '%test%';

但是此查询输出test1行.我需要使查询不区分大小写,以便data @> '[{"city":"New York"}]'匹配New YorkNEW YORK

But this query outputs test1 row. I need to make the query case insensitive so that data @> '[{"city":"New York"}]' matches both New York and NEW YORK

推荐答案

where lower(data::text)::jsonb @> lower('[{"city":"New York"}]')::jsonb

这篇关于postgresql jsonb不区分大小写的查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆