Sqlite Prepared Statement,不改变值/保持与现有相同? (机器人)

时间:2017-01-17 21:33:36

标签: android sqlite prepared-statement

让我说我准备好的陈述如下;

"UPDATE table1 SET column1 = ?, column2 = ? WHERE column3 = ?"

是否可以使用此语句仅更改column1或column2的值?正如您可能想象的那样,我的问题比示例复杂一些,但基本上我只会有一些可用于更新的列值,并且存在许多不同的变量,并且为每个案例创建准备好的语句会非常混乱

我最初认为我可以将列名设置为参数,但这不起作用,我怀疑因为参数只是作为字符串转义。

我认为子查询可以工作,但这可能是更多的工作,并且不太可理解,以编程方式实现,而不仅仅是为每个案例都有一个声明。

那么,请问我有什么选择?谢谢!

1 个答案:

答案 0 :(得分:1)

当您使用参数时,参数值是文字值,即它们不会以任何方式执行或解释。

将旧值引入此语句的唯一方法是使用单独的查询读取它,并使用该查询的结果作为参数值。

SQLite不是客户端/服务器数据库,因此准备语句没有很大的开销。只需使用多个预准备语句,或者只是一直在构建它们。