简体   繁体   中英

Python & pymysql: Database Table with hyphen in name

I need to query data from a mysqldatabase with the table name containing hyphens.

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

Unfortunately I get: 1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-10_1' at line 1")

Is there any way to work around that issue? Unfortunately I cannot change the names of the tables.....

You can normally use backticks to quote a table name or column name, in case it contains unhelpful characters.

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

or if you prefer

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

try like this, I don't know about MariaDB but quotes should work in SQL

sql2 = """
    SELECT
            *
    FROM "{table_name}"
    """.format(
            table_name='table-with-hyphens'
        )
print(sql2)
    # SELECT
    #         *
    # FROM "table-with-hyphens"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM