我正在用 Python 构建一个查询以传递给 pymysql 查询。
条件=['m']
query = "select * from table where condition in {}'.format(tuple(condition))
我坚持的部分是我想设置脚本以在 condition
可以是单个项目或具有多个项目的情况下工作。
在我看来,将列表转换为元组是可行的,但事实并非如此,因为:
元组(条件)
返回:
('m',)
,它无法在我的 mysql 服务器上运行。
最简单的设置方法是什么,我可以将单个值或多个值发送到我在 python 中构建的查询中的 where
子句?
最佳答案
所以我选择了不同的路线,因为这些建议要么太麻烦,要么不起作用。
对我有用的解决方案是:
cond = ', '.join('"{0}"'.format(w) for w in condition)
然后查询是:
select * from table where condition in ({})
.format(cond)`
这会生成一串以逗号分隔的值,每个值都用引号括起来。示例:
condition = ['baseline', 'error']
cond = ', '.join('"{0}"'.format(w) for w in condition)
#"baseline","error"
query = select * from table where condition in ({})`.format(cond)
# select * from table where condition in ("baseline","error")
关于Python 和 MySQL : passing a list/tuple,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51769695/