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

时间:2019-03-20 10:12:36

标签: python sql mariadb pymysql

我需要从mysql数据库查询表名称包含连字符的数据。

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

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

有什么办法可以解决该问题?不幸的是,我无法更改表的名称.....

2 个答案:

答案 0 :(得分:3)

如果表名或列​​名包含无用的字符,通常可以使用反引号引起来。

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

或者如果您愿意

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

答案 1 :(得分:0)

尝试这样,我不了解MariaDB,但是引号应该在SQL中起作用

<div>
   {testsData.map(data => {
      return (<Test {...data} />);
   })}
</div>