gpt4 book ai didi

python - SQLAlchemy 的 session.execute() IN 运算符

转载 作者:行者123 更新时间:2023-12-01 02:53:41 25 4
gpt4 key购买 nike

当我尝试执行这个简单的请求时遇到一个问题:

params['_filter_items'] = (12345)

sql = """ SELECT * FROM items
WHERE items.items IN %(_filter_items)s"""
# session is a db session of sqlAlchemy
query = session.execute(sql % params)

它将生成:

SELECT * FROM items
WHERE items.items IN 12345

没有()当我有不止一件元素时就可以了;我可以触摸该请求;但我想知道是否还有其他方法可以解决它。

最佳答案

  • 这个对象

    (12345)

    相同
    12345

    但看起来你需要带有单个元素12345tuple,它可以用逗号来完成

    (12345,)
  • 我们应该避免自己插入参数:

    session.execute(sql % params)

    让我们将这项工作委托(delegate)给 SQLAlchemy 和数据库驱动程序,并将参数作为参数传递给 execute:

    session.execute(sql, params)

尝试

params['_filter_items'] = (12345,)

sql = """ SELECT * FROM items
WHERE items.items IN %(_filter_items)s"""
# session is a db session of sqlAlchemy
query = session.execute(sql, params)

关于python - SQLAlchemy 的 session.execute() IN 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44454068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com