我在Python中建立查询以传递给pymysql查询。

condition=['m']
query = "select * from table where condition in {}'.format(tuple(condition))

我要坚持的部分是我想设置脚本以在condition可以是单个项目或具有多个项目的情况下工作。

在我看来,将列表转换为元组是可行的,但它不可行,因为:
tuple(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")

07-28 02:37
查看更多