"INDEXED BY index-name"子句规定必须需要命名的索引来查询前面表中值。
如果索引名index-name不存在或不能用于查询,然后SQLite语句的准备失败。
"NOT INDEXED"子句规定当访问前面(包括由UNIQUE和PRIMARY KEY约束创建的隐式索引)时,没有使用索引。
然而,即使指定了"NOT INDEXED", INTEGER PRIMARY KEY仍然可以被用于查询条目。
语法
下面是INDEXED BY子句的语法,它可以和DELETE、UPDATE或SELECT语句一起使用:
SELECT|DELETE|UPDATE column1, column2...
INDEXED BY (index_name)
table_name
WHERE (CONDITION);
实例
假设有表COMPANY,我们将创建一个索引,并用它进行INDEXED BY操作。
sqlite> CREATE INDEX salary_index ON COMPANY(salary);
sqlite>
现在使用INDEXED BY子句从表COMPANY中选择数据,如下所示:
sqlite> SELECT * FROM COMPANY INDEXED BY salary_index WHERE salary > 5000;
参考:
https://www.yuque.com/docs/share/f1411541-5643-487b-9abc-625ecdc693e5