Android 在房间数据库中,条件查询始终将数据设置为false
我有一个本地数据库,其中包含收件人的描述 在应用程序中,用户可以为收件人添加书签,我想更新数据库中的相应值,这应该是我理解的条件查询(例如,如果用户第一次单击收藏夹图标,则该值必须设置为true,如果他再次单击,则该值必须在数据库中设置为false) 我做了一些研究,最后提出了这样一个问题:Android 在房间数据库中,条件查询始终将数据设置为false,android,sqlite,android-room,Android,Sqlite,Android Room,我有一个本地数据库,其中包含收件人的描述 在应用程序中,用户可以为收件人添加书签,我想更新数据库中的相应值,这应该是我理解的条件查询(例如,如果用户第一次单击收藏夹图标,则该值必须设置为true,如果他再次单击,则该值必须在数据库中设置为false) 我做了一些研究,最后提出了这样一个问题: @Query("UPDATE recipee SET favorite = CASE WHEN favorite = 0 THEN favorite = 1 ELSE favorite = 0 END WH
@Query("UPDATE recipee SET favorite = CASE WHEN favorite = 0 THEN favorite = 1 ELSE favorite = 0 END WHERE name = :name")
void updateFavorite(String name);
问题是这个值总是设置为false,我不明白为什么,它从来没有设置为true。我不知道我的查询是否有问题。如果有人能告诉我这件事。
谢谢只需将您的收藏夹设置为当前值的相反值即可。所以使用
而不是
@Query("UPDATE recipee SET favorite = NOT favorite WHERE name = :name")
void updateFavorite(String name);
如果false为false,则将favorite设置为true,反之亦然。只需将favorite设置为当前值的相反值即可。所以使用而不是
@Query("UPDATE recipee SET favorite = NOT favorite WHERE name = :name")
void updateFavorite(String name);
如果false为false,则将favorite设置为true,反之亦然