让我说我准备好的陈述如下;
"UPDATE table1 SET column1 = ?, column2 = ? WHERE column3 = ?"
是否可以使用此语句仅更改column1或column2的值?正如您可能想象的那样,我的问题比示例复杂一些,但基本上我只会有一些可用于更新的列值,并且存在许多不同的变量,并且为每个案例创建准备好的语句会非常混乱
我最初认为我可以将列名设置为参数,但这不起作用,我怀疑因为参数只是作为字符串转义。
我认为子查询可以工作,但这可能是更多的工作,并且不太可理解,以编程方式实现,而不仅仅是为每个案例都有一个声明。
那么,请问我有什么选择?谢谢!
答案 0 :(得分:1)
当您使用参数时,参数值是文字值,即它们不会以任何方式执行或解释。
将旧值引入此语句的唯一方法是使用单独的查询读取它,并使用该查询的结果作为参数值。
SQLite不是客户端/服务器数据库,因此准备语句没有很大的开销。只需使用多个预准备语句,或者只是一直在构建它们。