假设我想在表my_table
中查找值5
位于数组 column 的第一个位置的行my_array_column
。为了准备表格,我执行了以下语句:
CREATE TABLE my_table (
id serial primary key,
my_array_column integer[]
);
CREATE INDEX my_table_my_array_column_index on "my_table" USING GIN ("my_array_column");
SET enable_seqscan TO off;
INSERT INTO my_table (my_array_column) VALUES ('{5,7,10}');
现在,查询可能如下所示:
select * from my_table where my_array_column[1] = 5;
这可行,但它不使用创建的 GIN 索引。是否可以使用索引搜索5
特定位置的值?