gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:41:12 26 4
gpt4 key购买 nike

我有一些输入是包含多个 MySQL 查询的字符串,例如 USE some_db;从 some_table 中选择 *;。当我将此字符串存储为 srun cursor.execute(s) 时,它会打印出 0L 并且当我执行 cursor. fetchall() 它返回一个空元组。它不会引发任何异常,但它也不起作用。当我将字符串拆分为两个查询并为每个查询打开一个游标并执行时,它起作用了,但是将字符串正确拆分为查询并不容易,尤其是在有注释的情况下。有没有办法避免拆分和执行多个查询的整个字符串?或者这有一个很好的库可以将多个查询的字符串拆分为每个查询一个的字符串?

谢谢!

最佳答案

当然,一个 Python 脚本可以从一个字符串或列表、外部 .sql 或 .txt 文件运行多个 SQL 语句,这些文件可以作为 MySQL 的来源。

但是,cur.execute 命令一次一个地运行一个 SQL 行。因此,您将需要迭代地遍历每个 SQL 行。因此,考虑用分号分割多个 SQL 命令。

s = "USE some_db; SELECT * FROM some_table;"

# filter() removes trailing empty list item
s = filter(None, s.split(';'))

for i in s:
# strip() removes leading and trailing white spaces
# semicolon is re-added per line for query run
cur.execute(i.strip() + ';')

但一定要删除注释中的所有分号。

# PROCESSING STEP 1;
# PROCESSING STEP 1

关于python - 有没有一种方法可以在 MySQL-Python 中对每个字符串执行多个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31106612/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com