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

时间:2018-07-02 15:54:00

标签: android kotlin android-room

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

3 个答案:

答案 0 :(得分:17)

使用EXISTS,并返回true false

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

@Query("SELECT EXISTS(SELECT * FROM tableName WHERE id = :id)")
fun isRowIsExist(id : Int) : Boolean

或简单地使用此

   @Query("SELECT EXISTS(SELECT * FROM tableName)")
   fun isExists(): Boolean

答案 1 :(得分:6)

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

@Query("SELECT EXISTS(SELECT * FROM table)")
fun hasItem(): Boolean

答案 2 :(得分:4)

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

但是,我还是建议无论如何都只是获取数据-如果Room不存在,Room只会返回一个空列表,并且它的效率应该不比询问行数(无论如何都是0)要有效。 / p>

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