gpt4 book ai didi

python - python中的sql脚本中未指定数量的变量

转载 作者:太空宇宙 更新时间:2023-11-04 05:49:49 25 4
gpt4 key购买 nike

我想通过类似于此的 python 对 sql 数据库运行查询:

cursor.execute('SELECT * FROM mf WHERE col2 = ? or ?', (country))

但是,我想在这部分代码中包含未指定数量的或选项,并且用户在单独的参数文件中指定国家/地区,即我不知道有多少 ?放入代码,因为它是可变的。是否可以在 SQL 代码中执行此操作?

最佳答案

首先,您的 SQL 代码无效。您想要 col2 = ?或 col2 = ? 或(更好)col2 IN (?, ?, ?)

不可能使用这样带有未知数量参数的参数化查询。另一方面,为了安全起见,您必须使用参数化查询。解决方案是在知道参数列表中的参数个数的基础上,使用 IN 形式构造一个参数化查询:

params = get_params_from_file_or_somewhere_else() # wherever you have the params.

qmarks = ', '.join('?' for param in params) # string with the "right" number of "?"

sql = 'SELECT * FROM mf WHERE col2 IN ({});'.format(qmarks)

cursor.execute(sql, params)

关于python - python中的sql脚本中未指定数量的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30788952/

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