首页 > 解决方案 > python sqlite3选择更新的行值

问题描述

我想在 SQL 查询中打印更新行的行 ID

while True:
  Conn = sqlite3.connect('database.db', timeout=60)
  c = Conn.cursor()
  c.execute("UPDATE row SET value='value' where status='status'")
  #i want to do something here to the updated row above
  Conn.commit()
  Conn.close()

标签: pythonpython-2.7sqlite

解决方案


您需要执行两个查询(可能会减慢您的过程)。一个选择ID,另一个更新对应的ID

while True:
    connection = sqlite3.connect('database.db', timeout=60)
    cursor = connection.cursor()

    # Get IDs to update
    rows = cursor.execute("SELECT id FROM row WHERE status='status'")
    ids = [str(x) for x, in rows]  # Transform tupple list to list of string

    # Update corresponding IDs
    cursor.execute(
        "UPDATE row SET value='value' WHERE id in ({0})".format(','.join(ids)))

    # Do what you want with `ids`...

    connection.commit()
    connection.close()

推荐阅读