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

问题描述 投票:0回答:1

在我的Room Dao课上,我有以下查询方法:

@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 + "%" ??),但是我不知道如何在Room中做。

android sql wildcard android-room
1个回答
0
投票

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

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

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

祝你好运

© www.soinside.com 2019 - 2024. All rights reserved.