Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在房间数据库中,条件查询始终将数据设置为false_Android_Sqlite_Android Room - Fatal编程技术网

Android 在房间数据库中,条件查询始终将数据设置为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

我有一个本地数据库,其中包含收件人的描述

在应用程序中,用户可以为收件人添加书签,我想更新数据库中的相应值,这应该是我理解的条件查询(例如,如果用户第一次单击收藏夹图标,则该值必须设置为true,如果他再次单击,则该值必须在数据库中设置为false)

我做了一些研究,最后提出了这样一个问题:

@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,反之亦然