2

我在 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并且对于字符串中的每个单词,它将单词的小写版本与文章的rowidin一起存储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还是天真地搜索每一行?

4

1 回答 1

5

使用 NSPredicate 根据您的要求检索特定的属性,您也可以像在核心数据中一样使用 Sqlite 进行映射。

于 2012-12-20T08:44:43.757 回答