Python 和 MySQL : passing a list/tuple

标签 python mysql pymysql

我正在用 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/

相关文章:

python - 按列迭代 3D 列表

python - 如何使用python从文件中读取数字仅列出为整数

mysql - 如何获取 "user id"中 "referral column"的计数

mysql - 创建mysql分区报错

mysql - 删除MySQL数据库中的宽度高度属性值

python - PyMysql 更新查询

python - Pyplot 中 x 轴上的刻度频率较低

python - 在同一时间戳下对 csv 数据进行分组

mysql - pymysql3cursor.lastrowid 有时不起作用

python - 如何将实际位置更改为临时位置、添加标题并删除 MySQL 中 Python 电子邮件表上的 csv 文件中的空间?