我在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")