在我的存储库类中,仅当Room表中不存在数据时,我才想获取数据。如何检查表中是否存在任何行?
答案 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>
此外,您将只需编写更少的代码即可获得所需的功能! :-)