在“房间道”课程中,我具有以下查询方法:
@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 + "%"
??),但是我不知道该怎么做在房间里。
答案 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
祝你好运