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

时间:2015-01-28 18:11:05

标签: android sqlite

我的数据库中有以下表格

id         name         is_current

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

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

id         name         is_current

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

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

第一:将is_current列的所有值设置为0

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

第二:是使用id

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

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

2 个答案:

答案 0 :(得分:1)

如果你想为特定的水果/ ID做这个东西(例如每次你更新苹果),你可以设置一个触发器,这样当你更新那个水果时,它会自动设置为零所有其他行。 但是,如果你想以更一般的方式做这些事情,那么你需要执行2个查询(由@Der Golem讲述)

答案 1 :(得分:0)

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

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

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