gpt4 book ai didi

Python/pg8000 WHERE IN 语句

转载 作者:行者123 更新时间:2023-11-28 16:27:36 27 4
gpt4 key购买 nike

通过 SQL 语句中的 %s 获取元组(名称)的正确方法是什么?

names = ('David', 'Isaac')
sql = 'SELECT * from names WHERE name IN %s'
cur.execute(sql,(names,))

https://stackoverflow.com/a/28117658/5879128 中的响应适用于 psycopg2 但不适用于 pg8000。

谢谢!

最佳答案

  1. 生成适当数量的占位符。在 pg8000 the placeholder defaults to %s .
  2. 将占位符插入查询字符串。
  3. 执行 SQL 注入(inject)安全查询。

像这样:

sql = 'SELECT * from names WHERE name IN ({})'.format( ','.join(['%s']*len(names)) )
# results in -> 'SELECT * from names WHERE name IN (%s,%s)'
cur.execute(sql,(names,))

关于Python/pg8000 WHERE IN 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35183490/

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