I have some input which is a string containing more than one MySQL queries, such as USE some_db; SELECT * FROM some_table;
. When I store this string as s<
Certainly, a Python script can run multiple SQL statements from a string or list, external .sql or .txt file that can be sourced to MySQL.
However, the cur.execute
command runs one SQL line one at a time. Hence, you will need to loop through each SQL line iteratively. So, consider splitting the multiple SQL commands by semicolon.
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() + ';')
But be sure to remove any semicolons found in comments.
# PROCESSING STEP 1;
# PROCESSING STEP 1