我很好奇基于前缀存储和检索大量单词的最佳方法是什么。该表将包含约200,000个单词。我需要根据给定的前缀(长度为2个字符)找到/返回所有匹配的单词
实施例。表包含=“abc”“abcd”aef“
给定前缀“ab”返回“abc”,“abcd”
我目前拥有的是:
select *
from table
where word like 'ab%'
但我觉得这不是最好的实现
答案 0 :(得分:2)
如果SQLite可以使用索引进行此查找,则此查询非常有效。
LIKE
不区分大小写,所以
TEXT
affinity,即它应声明为word TEXT
或类似的内容;和索引必须是created as case insensitive,例如:
CREATE INDEX MyTable_word_index ON MyTable(word COLLATE NOCASE);
如果您想要区分大小写的比较,可以使用任何普通索引和一些常规比较运算符:
SELECT *
FROM MyTable
WHERE word >= 'ab'
AND word < 'ac'
答案 1 :(得分:0)
SELECT * FROM tableName WHERE word LIKE 'ab%'