【发布时间】:2021-03-20 01:39:50
【问题描述】:
我正在寻找一种方法来进行不区分大小写的查询,我在这里找到了它 (postgresql jsonb case insensitive query),更准确地说是这样的查询:select ... where upper(data::text)::jsonb @> upper('[{"city":"New York"}]')::jsonb
但是,我似乎无法找到有关如何创建供此类查询使用的索引的足够信息。
where data::text @> '[{"city":"New York"}]'
与 GIN 索引完美配合
CREATE INDEX i1 ON mytable USING gin(data);
但是upper(...)函数会触发一次全扫描,代价太大。
提前谢谢你。
【问题讨论】:
标签: sql postgresql query-optimization where-clause jsonb