我在SQLite中有两个表:
CREATE TABLE article (body TEXT)
CREATE TABLE article_word (
word TEXT,
article_rowid INTEGER,
FOREIGN KEY(article_rowid) REFERENCES article(rowid),
PRIMARY KEY(word, article_rowid)
)
程序在article.body
中存储长字符串,并且对于字符串中的每个单词,它会在rowid
中存储该单词的小写版本以及文章article_word
。
我想让用户通过单词中的第一个不区分大小写的字符搜索文章,因此搜索baz
会产生包含foobar Bazquux spambacon
的文章。
如何修改表格/添加更多(如有必要)并最佳地查询匹配?确实
SELECT a.rowid, a.body FROM article a, article_word w WHERE w.word LIKE "baz%" AND a.rowid = w.article_rowid
利用PRIMARY KEY
上的article_word.word
索引,还是天真地搜索每一行?
答案 0 :(得分:5)
使用NSPredicate根据您的要求检索特定属性,您也可以像在核心数据中一样使用Sqlite进行映射。