一个索引只能支持每个索引列一种排序规则。如果需要多种排序规则,可能需要多个索引。
考虑以下语句
CREATE TABLE test1c ( id integer, content varchar COLLATE "x" ); CREATE INDEX test1c_content_index ON test1c (content);
索引会自动使用底层列的排序规则。因此,形式为
SELECT * FROM test1c WHERE content > constant
;
的查询可以使用索引,因为比较默认会使用该列的排序规则。但是,此索引无法加速涉及其他排序规则的查询。因此,如果形式为(例如)
SELECT * FROM test1c WHERE content > constant
COLLATE "y";
的查询也需要,则可以创建另一个支持 "y"
排序规则的索引,如下所示
CREATE INDEX test1c_content_y_index ON test1c (content COLLATE "y");