【问题标题】:Python 3 update sqlite column by an amount specified in a variablePython 3 按变量中指定的量更新 sqlite 列
【发布时间】:2018-07-31 20:55:03
【问题描述】:

场景:一个测验程序,其中包含不同分数的问题。

具有表 Table1 的 Sqlite 数据库,其中包含 Int 类型的字段 RunningTotal。

我希望通过传递给函数的“updateby”数量来更新 RunningTotal。这是一个数值(但可能是一个字符串,所以我将其转换为整数以确定。 tableid 用于标识要更新的行。

例如(非工作代码:错误是 updateby 不是列名)

def UpdateRunningTotal(tableid,updateby)
   updateby = int(updateby)
   conn.execute("UPDATE Table1 RunningTotal=RunningTotal+updateby WHERE tableid=?", (tableid,))

我知道如果我输入以下内容,它可以将字段增加 1,但作为一个函数,我希望更灵活地增加不同的数量。

conn.execute("UPDATE Table1 RunningTotal=RunningTotal+1 WHERE tableid=?", (tableid,))

我试图避免执行 SELECT 语句来读取 RunningTotal 的当前值,对其进行数学运算,然后在 UPDATE 语句中使用该结果...这对我来说似乎效率低下(但可能不是? )

【问题讨论】:

    标签: python python-3.x sqlite increment


    【解决方案1】:
    conn.execute("UPDATE Table1 set RunningTotal=RunningTotal+? WHERE tableid=?", (updateby, tableid,))
    

    使用这个语句......我已经检查过......它工作正常,它通过 RunningTotal+updateby 更新数据库中存在的先前 qnty

    希望您的问题能够得到解决

    【讨论】:

    • 完美。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2015-08-04
    • 2020-11-29
    相关资源
    最近更新 更多