sqlite - 在编辑数据库时根据填充值的数量更新值

时间:2017-10-02 11:24:30

标签: sql sqlite

我正在尝试在sqlite数据库中包含一个字段,该字段包含一系列数据的空字段数。

由于每个条目最多可以有10个选项,这些选项被设置为字段,例如。

ID, Option1, Option2, Option3...

我想要做的是有一个名为OptionCount的字段,它反映了数据行有多少个选项,所以如果只有选项1和2输入值,那么这个字段会说2.然后如果我将数据添加到选项3它会自动将此条目更新为3,依此类推。

我做了一些研究,似乎可能会使用触发器,但我对sqlite的了解就此止步。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用case

select t.*,
       ( (case when option1 is not null then 1 else 0 end) +
         (case when option2 is not null then 1 else 0 end) +
         (case when option3 is not null then 1 else 0 end) +
         . . . 
       ) as num_options_set
. . .

注意:您应该将选项存储在单独的表中,每个选项和每个选项都有一行。

在SQLite中,case不是必需的,因此您也可以将其写为:

select t.*,
       ( (option1 is not null) +
         (option2 is not null) +
         (option3 is not null) +
         . . . 
       ) as num_options_set
. . .