Python&pymysql:名称中带有连字符的数据库表

问题描述 投票:0回答:2

我需要使用包含连字符的表名来查询mysql数据库中的数据。

current_table = "tw3-10_1"
sql2 = "SELECT * FROM " + str(current_table ) 
cursor.execute(sql2)

不幸的是我得到:1064,“你的SQL语法有错误;检查与你的MariaDB服务器版本相对应的手册,以便在第1行的'-10_1'附近使用正确的语法”)

有没有办法解决这个问题?不幸的是我无法更改表格的名称.....

python sql mariadb pymysql
2个回答
3
投票

您通常可以使用反引号来引用表名或列名,以防它包含无用的字符。

current_table = "`tw3-10_1`"
sql2 = "SELECT * FROM " + current_table

或者如果你愿意的话

current_table = "tw3-10_1"
sql2 = "SELECT * FROM `{}`".format(current_table)

0
投票

尝试这样,我不知道MariaDB,但引用应该在SQL中工作

sql2 = """
    SELECT
            *
    FROM "{table_name}"
    """.format(
            table_name='table-with-hyphens'
        )
print(sql2)
    # SELECT
    #         *
    # FROM "table-with-hyphens"
© www.soinside.com 2019 - 2024. All rights reserved.