房间持久性库-使用通配符查询

时间:2019-12-17 15:38:35

标签: android sql wildcard android-room

在“房间道”课程中,我具有以下查询方法:

@Query("SELECT * FROM word_table WHERE firstName LIKE :word")
fun findByName(word:String): DataSource.Factory<Int, Word>

我还想用通配符检索名称,其中单词的开头和结尾可以是任何东西。 因此,类似"book"的查询也应返回单词“ CarBook", "MathBook", "BooksForLearning", "TheBooksToTry"。因此,查询应捕获单词"book"可以位于任意位置的单词。SQL可以做到这一点。关键字LIKE还是我需要添加其他关键字?

在某些SQL查询中,我看到%是在结尾处添加的(在我的情况下是"%" + :word + "%" ??),但是我不知道该怎么做在房间里。

1 个答案:

答案 0 :(得分:0)

这是全文搜索(FTS)功能,在声明表时必须启用此功能。这是SQLIte功能。

这是一个仓库,您可以在其中找到一些信息:https://github.com/android/architecture-components-samples/commit/c0d72f210241ff310bba13db9b8748081d6feab9

以下是一篇文章,应指导您完成整个过程: https://medium.com/@sienatime/enabling-sqlite-fts-in-room-2-1-75e17d0f0ff8

祝你好运