PyMySql将查询作为参数传递给sql语句

2024-10-01 00:15:19 发布

您现在位置:Python中文网/ 问答频道 /正文

非常熟悉使用pymysql和python将参数传递给SELECT语句。只是将其抛出,但是否可以将查询作为参数传递给sql语句?比如:

sqlCmd = """SELECT * from mytable where coadataid=%s"""
cur.execute(sqlCmd,("""ANY(SELECT recordid FROM coadata WHERE flowtype='1')""",))

显然,上述方法不起作用,但我正在寻找一种方法,让类似的东西发挥作用。好主意


Tags: 方法fromexecutesqlmytableany语句where
1条回答
网友
1楼 · 发布于 2024-10-01 00:15:19

参数总是被替换为文本值,它们不是将由MySQL计算的表达式。这就是参数阻止SQL注入的原因

您可以使用普通字符串格式将子查询替换为主查询,并使用cursor.execute()参数填充子查询中的值

cur.execute(sqlCmd % ("""ANY(SELECT recordid FROM coadata WHERE flowtype=%s)""",), ('1',))

相关问题 更多 >