会议室:如何检查行是否存在

JGu*_*Guo 6 android kotlin android-room

在我的存储库类中,仅当Room表中不存在数据时,我才想获取数据。如何检查表中是否存在任何行?

Tar*_*der 64

使用 EXISTS ,并返回真假

如果您想检查某些特定行和某些条件,请执行此技巧

@Query("SELECT EXISTS(SELECT * FROM tableName WHERE id = :id)")
fun isRowIsExist(id : Int) : Boolean
Run Code Online (Sandbox Code Playgroud)

或者简单地使用这个

   @Query("SELECT EXISTS(SELECT * FROM tableName)")
   fun isExists(): Boolean
Run Code Online (Sandbox Code Playgroud)

  • 看起来您已经发布了正确答案,但没有获得足够的投票。 (4认同)

Max*_*kov 6

您可以使用EXISTS运算符并返回Boolean

@Query("SELECT EXISTS(SELECT * FROM table)")
fun hasItem(): Boolean
Run Code Online (Sandbox Code Playgroud)


mre*_*elt 5

正如ADM所建议的那样,使用COUNT()计数表中的实际行可能会很幸运。

但是,我还是建议无论如何都要获取数据-如果不存在,Room会简单地返回一个空列表,并且它的效率不应该比要求行数低(如果有的0话)。

另外,您将只需编写更少的代码即可获得所需的功能!:-)