我可以在 MySQL 查询中指定 db 吗?

社会演员多 python 193

原文标题Can i specify db in MySQL query?

这个问题在这里已经有了答案:Mysql union from multiple database tables (5 answers) Closed 7 mins ago 。

我有一个tableA在同一主机下的4个不同数据库中具有相同的结构。有没有更好的方法,如何在 Python 中对这 4 个表进行垂直连接?

import pandas as pd

import MySQLdb


dbs = ["db1", "db2", "db3", "db4"]

config = ConfigParser()
config.read("config.ini")

for db in dbs:
    connection = MySQLdb.connect(
             user=config["db"]["user"],
             passwd=config["db"]["password"],
             host=config["db"]["host"],
             db=db,
             )

    cursor = connection.cursor()

    query = """ 
                SELECT *
                FROM tableA            
            """

    cursor.execute(query)
    df = pd.DataFrame(cursor.fetchall())
    # todo and now join all df into one

换句话说,我可以在查询中指定db1, db2, db3, db4吗?

原文链接:https://stackoverflow.com//questions/71995941/can-i-specify-db-in-mysql-query

回复

我来回复
  • Pierre Blanchet的头像
    Pierre Blanchet 评论

    如果它们位于 4 个不同的数据库中,我认为只要 4 个表不是太大以至于会使过程变慢,你在这里所做的就足够了。

    因此,我建议在您的 for 循环之前创建一个空数据框,并在循环结束时将此数据框与您创建的新数据框合并。为此,可以在此处找到保存数据来自哪个数据库的信息的好方法,

    2年前 0条评论