我有一些输入,它是一个包含多个MySQL查询的字符串,例如USE some_db; SELECT * FROM some_table;
。当我将这个字符串存储为s
和run cursor.execute(s)
时,它会输出0L
,当我存储cursor.fetchall()
时,它会返回一个空元组。它不会引发任何异常,但也不起作用。当我将字符串拆分为两个查询并为每个查询打开一个游标并执行时,它可以工作,但将字符串正确拆分为查询并不容易,特别是在有注释的情况下。有没有一种方法可以避免拆分和执行多个查询的整个字符串?或者这是一个很好的库,可以将多个查询的字符串拆分为每个查询一个字符串?
谢谢!
查看MySQLCursor.execute()的文档。
它声称您可以传入一个
multi
参数,该参数允许您在一个字符串中运行多个查询。multi
是execute()调用的第二个可选参数:当然,一个Python脚本可以从一个字符串或列表、external.SQL或.txt文件运行多个SQL语句,这些文件可以源于MySQL。
但是,
cur.execute
命令一次运行一个SQL行。因此,您将需要循环遍历每个SQL行。因此,考虑用分号分隔多个SQL命令。但一定要删除注释中的分号。
相关问题 更多 >
编程相关推荐