我是sql数据库的新手,目前我想做一个可以执行T9搜索方法的数据库,但我不知道如何制作它。任何人都可以指导我吗?提前致谢
答案 0 :(得分:1)
假设你不太担心效率,并且有一个包含这种形式的整个字典的表:Dictionary([id],[hashed],[word])
其中[哈希]字段是用其组符号替换每个字符(例如'a','b'和'c'可以替换为'A')
假设我们有一个'hash'存储函数,使得hash([word])= [hashed]。
然后你可以简单地运行这个查询:
Select word from Dictionary where [hashed] like (hash(input)+'%')
答案 1 :(得分:0)
您应该知道的第一件事是LIKE运算符,用于自动完成:
http://www.w3schools.com/sql/sql_like.asp
SQL查询不是T9样式查询的最佳方式。
有更高效的数据结构支持针对此类问题的可扩展,强大的解决方案。 (例如,特里:http://en.wikipedia.org/wiki/Trie)
答案 2 :(得分:0)
在android中,我使用GLOB执行T9搜索,例如GLOB'[ABC] [DEF] *'
db.rawQuery("SELECT _id, word, freq FROM dicttable WHERE word GLOB '"+searchWord+"*' ORDER BY freq DESC",
null);
希望这可以提供帮助