我有以下 sql 查詢:
SELECT *
FROM %s.tableA
tableA 在,db-jablonec所以我需要呼叫db-jablonec.tableA.
我在 Python 中使用這種方法:
def my_method(self, expedice):
self.cursor = self.connection.cursor()
query = """
SELECT *
FROM %s.tableA
"""
self.cursor.execute(query, [expedice])
df = pd.DataFrame(self.cursor.fetchall())
我這樣稱呼它:
expedice = ["db-jablonec"]
for exp in expedice:
df = db.my_method(exp)
但我得到一個錯誤MySQLdb.ProgrammingError: (1146, "Table ''db-jablonec'.tableA' doesn't exist")
顯然,我想呼叫'db-jablonec.tableA'not ''db-jablonec'.tableA'。請問我該如何解決?
uj5u.com熱心網友回復:
它將 %s 作為自己的字串傳遞,包括引號''
因此,您需要將其作為一個變數傳遞。將 .table 連接到變數本身,然后將其傳入。
因此,您的查詢將是
query = """
SELECT *
FROM %s
"""
uj5u.com熱心網友回復:
我認為這對你有幫助
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%%'
參考這個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/504976.html
