【问题标题】:Pass multiple tuple to python SQLite command将多个元组传递给 python SQLite 命令
【发布时间】:2020-04-20 19:13:01
【问题描述】:

我正在尝试将多个元组传递给 SQLite 中的占位符。 示例我得到 2 个元组,如下所示:

tup_A = (1, 2, 3, 4)
tup_B = (5, 6, 7, 8)

SQL 命令如下:

sql = 'SELECT * FROM abc WHERE col_A IN (?,?,?,?) AND NOT IN (?,?,?,?) ORDER BY col_A;'

所以我尝试了执行器:

results = executor(sql, (tup_A,tup_B))

results = executor(sql, tup_A + tup_B)

但它会导致

OperationalError('near "IN": syntax error',)

我已经尝试使用一个参数成功运行命令:

    sql = 'SELECT * FROM abc WHERE col_A IN (?,?,?,?) ORDER BY col_A;'
    results = executor(sql, tup_A)

任何帮助将不胜感激

【问题讨论】:

  • 注意你得到的错误。您的查询语法有问题。
  • 阅读 the documentation 可能有助于了解问题所在。
  • 感谢 Shawn,我意识到我在 NOT IN 子句之前错过了 col_a
  • 您不需要AND col_A NOT IN (?,?,?,?),因为查询的第一部分会以任何方式过滤掉这些记录。

标签: python sqlite tuples


【解决方案1】:

我意识到我错过了 NOT IN 子句之前的 col_a,这个命令起作用了:

results = executor(sql, tup_A + tup_B)

【讨论】:

    猜你喜欢
    • 2021-09-21
    • 2016-03-02
    • 1970-01-01
    • 2018-02-09
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 2023-01-11
    相关资源
    最近更新 更多