数据库
首页 > 数据库> > 有没有一种方法可以在MySQL-Python中为每个字符串执行多个查询?

有没有一种方法可以在MySQL-Python中为每个字符串执行多个查询?

作者:互联网

我有一些输入,它是一个包含多个MySQL查询的字符串,例如USE some_db;. SELECT * FROM some_table;.当我将该字符串存储为s并运行cursor.execute(s)时,它将输出0L,而当我执行cursor.fetchall()时,它将返回一个空元组.它不会引发任何异常,但也不起作用.当我将字符串拆分为两个查询并为每个查询打开一个游标并执行时,它可以工作,但是正确地将字符串拆分为查询并不容易,尤其是在有注释的情况下.有没有一种方法可以避免拆分并执行多个查询的整个字符串?还是有一个很好的库将多个查询的字符串拆分为每个查询一个的字符串?

谢谢!

解决方法:

查看有关MySQLCursor.execute()的文档.

它声称您可以传入一个多参数,该参数允许您在一个字符串中运行多个查询.

If multi is set to True, execute() is able to execute multiple
statements specified in the operation string.

multi是execute()调用的可选第二个参数:

operation = 'SELECT 1; INSERT INTO t1 VALUES (); SELECT 2'
for result in cursor.execute(operation, multi=True):

标签:python,mysql,mysql-python
来源: https://codeday.me/bug/20191009/1878732.html