Android: SQLite 更新列中的单个值。然后是同一列的所有其他

Android: SQLite update Single value in a col. and then all other of the same col

我的数据库中有以下 table

id         name         is_current

1          apple           0
2          banana          1
3          mango           0
4          grapes          1
5          pineapple       1

我想执行一个更新查询,它将更新 (fruit) table 最后一列 (is_current) 单个值,同时更新整个列值。例如,第一行有一个带有 id=1 的苹果,我想将此值设置为 1 并将所有其他水果值设置为零,因此 table 看起来像

id         name         is_current

1          apple           1
2          banana          0
3          mango           0
4          grapes          0
5          pineapple       0

目前我正在使用两个不同的查询和不同的方法来实现这个

1st:就是将is_current列的所有值设置为0

String sql = "UPDATE "+TABLE_NAME +" SET " + is_current + " = '"+ Zero +"';

2nd:是通过id

将苹果值设置为1
String sql = "UPDATE "+TABLE_NAME +" SET " + is_current + " = '"+ One +"' WHERE "+ id + " = "+rowId;

那么如何将这两个查询合并为一个查询来实现这一目标呢?

how can I combine these two queries to a single one to achieve this?

你不能
您必须执行 至少 2 个命令.

将所有 is_current 值更新为 0 的命令。
以及将指定记录更新为 1 的命令。

如果您想针对特定 fruit/ID 执行此操作(例如,每次更新苹果时),您可以设置一个触发器,这样当您更新该水果时,它会自动将所有其他水果设置为零行。 但是,如果您想以更通用的方式执行此操作,则需要执行 2 个查询(如@Der Golem 所述)