使用此架构:
CREATE TABLE temperatures(
sometext TEXT,
lowtemp INT,
hightemp INT,
moretext TEXT);
当我搜索时
select * from temperatures where lowtemp < 20 and hightemp > 20;
我得到的结果总是一条记录(由于数据的具体情况而定)。
现在,当我索引表时:
CREATE INDEX ltemps ON temperatures(lowtemp);
CREATE INDEX htemps ON temperatures(hightemp);
上面完全相同的查询停止提供预期的结果 - 现在我得到很多记录,包括lowtemp和hightemp显然不符合比较测试的记录。
我在同一个sqlite3数据库上运行它,同一个表。唯一的区别是在创建表之后添加上述2个索引语句。
有人可以解释索引如何影响这种行为吗?