【问题标题】:Why is there a comma after the variable in this sqlite query? [duplicate]为什么这个 sqlite 查询中的变量后面有逗号? [复制]
【发布时间】:2019-12-31 19:30:15
【问题描述】:

我有以下代码并且它可以工作,但我需要了解为什么变量 id_to_remove 后面有一个逗号,有人可以向我解释为什么必须在那里吗? (看不懂的部分加粗了)

def delete_user(id_to_remove):
    sql = "DELETE FROM USERS WHERE ID = ?"
    conn = create_connection()
    cursor = conn.cursor()
    **cursor.execute(sql, (id_to_remove, ))**
    conn.commit()
    conn.close()

所以我不知道为什么它的 id_to_remove,而不仅仅是 cursor.execute(sql,(id_to_remove))

【问题讨论】:

  • (id_to_remove, ) 是一个包含一个项目的元组,id_to_remove
  • 那是因为 execute 期望第二个参数是一个可迭代的(一个列表),如果你不把逗号放在括号之间 (id_to_remove) 将转换为一个 int。
  • 检查One Element Tuples和/或This
  • 非常感谢,有一些阅读要做。 :0)

标签: python sqlite sql-delete


【解决方案1】:

因为它会将所有? 值替换为tuple 中的值。如果不放逗号那么是单值,需要加起来构造单值tuple

【讨论】:

    猜你喜欢
    • 2022-06-10
    • 2021-03-24
    • 2018-05-15
    • 1970-01-01
    • 2010-10-04
    • 2017-02-02
    • 2017-05-10
    • 2017-08-01
    相关资源
    最近更新 更多